我目前正在尝试从2010年迁移到Visual Studio 2013,并将我的应用程序从IIS 6迁移到IIS 7.5。
我有一个Backbone SPA风格的应用程序,它使用瘦的.net后端,在启动时我们通过IIS加载我们的index.html。我的VS2013和VS2010都有我的项目,在2010年使用“Visual Studio开发服务器”(我理解为IIS 6)项目加载并运行良好。
我的web.config看起来像这样:
<system.web>
<compilation debug="true" targetFramework="4.0">
</compilation>
<customErrors mode="Off"></customErrors>
<httpRuntime maxRequestLength="153600" maxUrlLength="2048" relaxedUrlToFileSystemMapping="true" />
</system.web>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-UA-Compatible" value="chrome=1" />
</customHeaders>
</httpProtocol>
<modules runAllManagedModulesForAllRequests="true">
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</modules>
<handlers>
<!-- Make sure we can use this handler for any URL because we're using ReST. The default is
for it to be used only for .svc -->
<remove name="svc-Integrated-4.0" />
<add name="svc-Integrated-4.0" path="*" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<standardEndpoints>
<webHttpEndpoint>
<!--
Configure the WCF REST service base address via the global.asax.cs file and the default endpoint
via the attributes on the <standardEndpoint> element below
-->
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/>
</webHttpEndpoint>
</standardEndpoints>
</system.serviceModel>
</configuration>
2013年使用“IIS Express”时,我首先收到以下错误:
没有为扩展名“.html”注册的构建提供程序。您 可以在一节中注册一个 machine.config或web.config。确保有一个 包含值的BuildProviderAppliesToAttribute属性 '网络'或'全'。
所以我在编译部分添加了以下内容:
<buildProviders >
<add extension=".htm" type="System.Web.Compilation.PageBuildProvider" />
<add extension=".html" type="System.Web.Compilation.PageBuildProvider"/>
</buildProviders>
此时我遇到了一个新错误,我似乎无法解决它,现在在启动时我收到以下错误:
由于异常,无法激活服务'/index.html' 在编译期间。异常消息是:对象引用不是 设置为对象的实例..]