【问题标题】:Can I use ASP.NET Web Pages without deploying the "bin" folder?我可以在不部署“bin”文件夹的情况下使用 ASP.NET 网页吗?
【发布时间】:2012-09-29 22:45:44
【问题描述】:

我正在创建一个非常简单的网站,最初只是一堆 HTML / CSS 文件。然后我需要添加一点服务器端逻辑,所以我想我会使用 ASP.NET 网页,因为它们听起来像是一个合适的解决方案。

所以我将index.html 更改为index.cshtml,添加了我需要的代码,但我想就是这样(我还添加了这个基本的web.config 文件:

<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
</configuration>

但是,在本地 IIS Express 上启动它会产生这个错误:

无法确定要使用哪个版本的 ASP.NET 网页。

为了使用该站点,请在站点的 web.config 文件中指定一个版本。有关详细信息,请参阅 Microsoft 支持网站上的以下文章:http://go.microsoft.com/fwlink/?LinkId=254126

所以我将此添加到我的web.config

<appSettings >
    <add key="webPages:Version" value="2.0" />
</appSettings >

现在网站启动了,但处理 UTF-8 真的很奇怪——尽管所有 HTTP 标头、文件编码和元标记都正确设置为 UTF-8,但我的国家字符显示不正确。我发现了这个问题:Do I need web.config for non-ASCII characters?,但它并没有真正解决我的问题。

不过,我的设置有什么问题?当我在 WebMatrix 中创建一个新站点并将我的文件复制到其中时,一切正常,即使没有在 web.config 中指定网页版本。我能看到的唯一区别是 WebMatrix 生成的项目中存在 bin 文件夹。

所以问题是,我是否也需要bin 文件夹作为我的源文件的一部分?我真的不觉得只需要在我的 index.cshtml 中添加一个动态行就需要将价值 1.5MB 的二进制文件检查到 Git 中,但也许就是这样?

感谢您确认这一点或告诉我一些更好的方法。

【问题讨论】:

  • 尝试使用 .aspx 解析器,看看会发生什么?你用的是什么版本的VS?
  • 嗯,还有一个细微的差别——WebMatrix 创建的站点使用 BOM,而我的 index.cshtml 文件没有。 ASP.NET 不能处理非 BOM 文件?我不会相信的。
  • 无论如何,问题是存在 - 我需要还是不需要包含 bin 文件夹,可能还包括 Web Matrix 为新项目生成的 App_Data\packages 文件夹?

标签: asp.net asp.net-webpages


【解决方案1】:

ASP.NET WebPages 需要 UTF-8 页面上的 BOM,否则它不会将页面读取为 UTF-8。如果不这样做,它就不会输出 UTF-8 编码的页面。

这不是 ASP.NET 问题,而是网页问题。 WebPages 处理真实页面,它不会解释 html 以知道它应该是 UTF-8。它知道的唯一方法是查找 BOM。

【讨论】:

  • 谢谢,添加&lt;globalization fileEncoding="utf-8" /&gt; 修复它。但是,最初的问题仍然存在 - 我是否需要使用 binApp_Data\packages 文件夹进行部署?
  • 这取决于WebPages、Razor、Infrstructure等.dll是否在服务器上的GAC中。您是否在服务器上安装了网页?任何未安装在 GAC 中的东西都必须进行 bin 部署。另外,我不确定部署与将内容签入 Git 有什么关系。
  • 例如,我可能会使用 Azure 网站来托管它,而 Git 是那里的一种部署机制。我可能会尝试在那里部署,看看它是否适用于bin。谢谢。
  • @Borek - 你到底为什么要使用 Git 发布到 Azure?只需使用 Visual Studio Azure 发布向导。
  • @Borek - 当然,但你不应该抱怨你逆流而上所面临的困难。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-03
  • 2010-10-13
  • 2017-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多