0

我使用带有 JSON 的 .NET 4.0 创建了一个网站。我现在正在尝试将站点托管在远程主机服务器(网络解决方案)上,当我打开网站时出现以下错误:

web.config 文件中无法识别的配置部分 system.web.extensions。

我打电话给他们的支持,他们说他们只能托管 .NET 3.5 网站而不能托管 .NET 4.0(他们的服务器上没有 .NET 4.0 框架)。

是否有解决方法可以在 .NET 3.5 框架中进行这项工作?

这是我的配置文件:

<?xml version="1.0"?>
<configuration>
  <configSections>
    <sectionGroup name="myCompany.PropertySystem" type="myCompany.PropertySystem.Configuration.PropertyConfigurationSectionGroup">
      <section name="dataProviders" type="myCompany.PropertySystem.Configuration.PropertyDataProviderConfigurationSection, myCompany.PropertySystem"/>
    </sectionGroup>
  </configSections>

  <system.web>
    <globalization culture="en-US" uiCulture="en-US"/>

    <compilation debug="true" targetFramework="4.0" defaultLanguage="c#">
    </compilation>

    <authentication mode="Forms">
      <forms loginUrl="~/Login.aspx" />
    </authentication>

    <httpHandlers>
      <remove verb="*" path="*.asmx"/>
      <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add verb="GET, POST" path="Upload.ashx" type="myCompany.PropertySystem.Web.Handlers.UploadHandler, myCompany.PropertySystem"/>
    </httpHandlers>

    <httpModules>
      <add name="SriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </httpModules>

    <trace enabled="false" pageOutput="true" mostRecent="true" requestLimit="150"/>

    <customErrors mode="Off"></customErrors>

    <pages validateRequest="false" enableViewState="false" enableEventValidation="false" controlRenderingCompatibilityVersion="3.5">
      <controls>
        <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      </controls>
    </pages>

    <webServices>
      <protocols>
        <add name="HttpGet"/>
      </protocols>
    </webServices>

    <sessionState mode="InProc" cookieless="UseCookies" timeout="120"></sessionState>

    <httpRuntime executionTimeout="120" maxRequestLength="524288"/>
  </system.web>

  <system.web.extensions>
    <scripting>
      <webServices>
        <jsonSerialization maxJsonLength="500000000"/>
      </webServices>
    </scripting>
  </system.web.extensions>


  <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>

    <handlers>
      <remove name="WebServiceHandlerFactory-Integrated"/>
      <remove name="ScriptHandlerFactory"/>
      <remove name="ScriptHandlerFactoryAppServices"/>
      <remove name="ScriptResource"/>
      <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedModule" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedModule" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add name="ScriptResource" verb="GET,HEAD" path="ScriptResource.axd" preCondition="integratedModule" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add name="Upload" verb="GET,POST" path="Upload.ashx" type="myCompany.PropertySystem.Web.Handlers.UploadHandler, myCompany.PropertySystem"/>
    </handlers>

    <defaultDocument>
      <files>
        <remove value="iisstart.htm"/>
        <remove value="index.html"/>
        <remove value="index.htm"/>
        <remove value="Default.asp"/>
        <remove value="Default.htm"/>
      </files>
    </defaultDocument>
  </system.webServer>

  <appSettings>
    <add key="SiteID" value="700"/>
    <add key="SiteName" value="My Company"/>
    <add key="SiteVirtualPath" value="~/"/>
    <add key="StartPage" value="~/Default.aspx"/>

    <!-- Email server values-->
    <add key="SmtpServer.Name" value=""/>
    <add key="SmtpServer.Port" value=""/>
    <add key="SmtpServer.UserName" value=""/>
    <add key="SmtpServer.Password" value=""/>
    <add key="Notifications.From" value=""/>
    <add key="Notifications.To" value=""/>
    <add key="Notifications.Cc" value=""/>
    <add key="HandlerAcceptedReferrers" value=""/>

    <!-- Upload path-->
    <add key="UploadPath" value="~/Uploads"/>

    <add key="PropertyApplicationServerUrl" value="http://localhost/PropertySystem/"/>
    <add key="RedirectToPropertyApplicationUrl" value="false"/>
  </appSettings>

  <connectionStrings>
    <add name="myCompany.PropertySystem.Data.Providers.PropertyManagementDataProvider" connectionString="Data Source=MYCOMPANY;Initial Catalog=MyCompanyDB;User ID=sa;Password=somepwd;Persist Security Info=False;" providerName="System.Data.SqlClient"/>
  </connectionStrings>

  <myCompany.PropertySystem>
    <dataProviders>
      <dataProvider name="PropertyManagementDataProvider" providerType="myCompany.PropertySystem.Data.Providers.PropertyManagementDataProvider, myCompany.PropertySystem" connectionString="@myCompany.PropertySystem.Data.Providers.PropertyManagementDataProvider" defaultSchema="dbo" defaultCommandTimeout="120" cachingEnabled="true" defaultCacheDuration="00.00:30:00">
      </dataProvider>
    </dataProviders>
  </myCompany.PropertySystem>
</configuration>
4

1 回答 1

0

是的,您应该检查 iis 应用程序池并确保它运行的是 .net 4.0。(在 iis 中右键单击站点并查看属性,您应该也可以更改它使用的框架。)

并确保稍后在命令提示符下运行“iisreset”命令。

于 2013-05-19T11:51:40.580 回答