我在windows xp上编写的web.config在iis7上不起作用

时间:2014-07-11 14:28:26

标签: c# visual-studio-2010 iis-7 web-config asp.net-4.0

我有很多使用visual studio 2005,2008,2010开发的网络应用程序,所有这些都是在windows xp和iis上开发的

所有这些Web应用程序都无法在显示此错误的iis7上运行

服务器错误

500 - 内部服务器错误。 您正在查找的资源存在问题,无法显示。

即使我将错误转为启用详细错误,它仍然喜欢这个

是否有工具将这些web.config文件转换为在ii7上工作

我无法逐个手动更改它们,因为它们是数十个Web应用程序

请咨询

示例:

                <?xml version="1.0"?>
            <configuration>
              <!-- The configSections define a section for ASP.NET Atlas. -->
              <configSections>
                <section name="TheodoreWebsite.Data" type="TheodoreWebsite.Data.Bases.NetTiersServiceSection, TheodoreWebsite.Data" allowDefinition="MachineToApplication" restartOnExternalChanges="true" />
                <section name="enterpriseLibrary.ConfigurationSource" type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ConfigurationSourceSection, Microsoft.Practices.EnterpriseLibrary.Common,  Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <sectionGroup name="microsoft.web" type="Microsoft.Web.Configuration.MicrosoftWebSectionGroup">
                  <section name="converters" type="Microsoft.Web.Configuration.ConvertersSection" requirePermission="false" />
                  <section name="webServices" type="Microsoft.Web.Configuration.WebServicesSection" requirePermission="false" />
                  <section name="authenticationService" type="Microsoft.Web.Configuration.AuthenticationServiceSection" requirePermission="false" />
                  <section name="profileService" type="Microsoft.Web.Configuration.ProfileServiceSection" requirePermission="false" />
                </sectionGroup>
              </configSections>
              <appSettings/>
              <connectionStrings>
                <add name="TheodoreWebsite.Data.ConnectionString" connectionString="Data Source=server-0278FFE454\SQL2008R2;Initial Catalog=TheodoreWebsite;User ID=sa;Password=qwer1234" />
              </connectionStrings>
                <TheodoreWebsite.Data defaultProvider="SqlNetTiersProvider">
                    <providers>
                <!--
                *** SqlClient Provider ***
                    connectionStringName: sqlclient connection string to the db
                    useStoredProcedure: if true, indicates that we use the stored procedures, otherwise, we use parametrized queries that are embedded.
                -->
                  <add 
                    name="SqlNetTiersProvider" 
                    type="TheodoreWebsite.Data.SqlClient.SqlNetTiersProvider, TheodoreWebsite.Data.SqlClient"
                    connectionStringName="TheodoreWebsite.Data.ConnectionString"
                    useStoredProcedure="false"
                    providerInvariantName="System.Data.SqlClient"
                    entityFactoryType="TheodoreWebsite.Entities.EntityFactory"
                    useEntityFactory="true"
                    enableEntityTracking="false"
                    enableMethodAuthorization="false"
                    defaultCommandTimeout="30"
                    />
                  <!-- 
                    *** WebserviceClient Provider ***
                    The url parameter indicates the webservices url (ex: http://localhost/TheodoreWebsite/TheodoreWebsiteServices.aspx)
                  <add 
                    name="WsNetTiersProvider" 
                    type="TheodoreWebsite.Data.WebServiceClient.WsNetTiersProvider, TheodoreWebsite.Data.WebServiceClient"
                    url="/TheodoreWebsiteServices.asmx"
                    />
                 -->
                    </providers>
                </TheodoreWebsite.Data>
              <!--
                   The microsoft.web section defines items required for the Atlas framework.
              -->
              <microsoft.web>
                <converters>
                  <add type="Microsoft.Web.Script.Serialization.Converters.DataSetConverter"/>
                  <add type="Microsoft.Web.Script.Serialization.Converters.DataRowConverter"/>
                  <add type="Microsoft.Web.Script.Serialization.Converters.DataTableConverter"/>
                </converters>
                <webServices enableBrowserAccess="true" />
                <!--
                     Uncomment this line to enable the authentication service.

                <authenticationService enabled="true" />
                -->
                <!--
                     Uncomment these lines to enable the profile service. To allow profile properties to be retrieved 
                     and modified in Atlas applications, you need to add each property name to the setProperties and 
                     getProperties attributes.  If you intend for all properties to be available, you can use "*"
                     as a shorthand rather than enumerating each property

                <profileService enabled="true" 
                                setProperties="propertyname1;propertyname2" 
                                getProperties="propertyname1;propertyname2" />
                -->
              </microsoft.web>
              <system.web>
                <pages theme="default">
                  <controls>
                    <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                    <add tagPrefix="ajaxToolkit" namespace="AjaxControlToolkit" assembly="AjaxControlToolkit"/>
                    <add tagPrefix="data" namespace="TheodoreWebsite.Web.Data" assembly="TheodoreWebsite.Web"/>
                    <add tagPrefix="data" namespace="TheodoreWebsite.Web.UI" assembly="TheodoreWebsite.Web"/>
                  </controls>   
                </pages>
                <!--
                     Set compilation debug="true" to insert debugging 
                     symbols into the compiled page. Because this 
                     affects performance, set this value to true only 
                     during development.
                -->
                <compilation debug="true">
                    <buildProviders>
                        <add extension=".asbx" type="Microsoft.Web.Services.BridgeBuildProvider" />
                    </buildProviders>
                    <assemblies>
                        <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                    </assemblies>   
                </compilation>
                <!--
                     ASMX is mapped to a new handler so that proxy javascripts can also be served.
                -->
                <httpHandlers>
                  <remove verb="*" path="*.asmx"/>
                  <add verb="*" path="*.asmx" type="System.Web.Script.Services.ScriptHandlerFactory" validate="false"/>
                  <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                  <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>      
                  <!--
                       The MultiRequestHandler enables multiple requests to be handled in one
                       roundtrip to the server. Its use requires Full Trust.
                  -->
                  <add verb="*" path="atlasbatchcall.axd" type="Microsoft.Web.Services.MultiRequestHandler" validate="false"/>
                  <add verb="*" path="atlasglob.axd" type="Microsoft.Web.Globalization.GlobalizationHandler" validate="false"/>
                  <add verb="*" path="*.asbx" type="System.Web.Script.Services.ScriptHandlerFactory" validate="false"/>
                  <!--
                       The IFrameHandler enables a limited form of cross-domain calls to 'Atlas' web services.
                       This should only be enabled if you need this functionality and you're willing to expose
                       the data publicly on the Internet.
                       To use it, you will also need to add the attribute [WebOperation(true, ResponseFormatMode.Json, true)]
                       on the methods that you want to be called cross-domain.
                       This attribute is by default on any DataService's GetData method.

                    <add verb="*" path="iframecall.axd" type="Microsoft.Web.Services.IFrameHandler" validate="false"/>
                  -->
                </httpHandlers>
                <httpModules>
                  <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                  <add name="EntityTransactionModule" type="TheodoreWebsite.Web.Data.EntityTransactionModule, TheodoreWebsite.Web"/>
                </httpModules>
                <!--
                      The <authentication> section enables configuration 
                      of the security authentication mode used by 
                      ASP.NET to identify an incoming user. 

                  <authentication mode="Windows"/>
                -->
                <!--
                      The <customErrors> section enables configuration 
                      of what to do if/when an unhandled error occurs 
                      during the execution of a request. Specifically, 
                      it enables developers to configure html error pages 
                      to be displayed in place of a error stack trace.

                  <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
                      <error statusCode="403" redirect="NoAccess.htm"/>
                      <error statusCode="404" redirect="FileNotFound.htm"/>
                  </customErrors>
                -->
              </system.web>
              <!-- Uncomment this if your site globally denies access to anonymous users.  The 
                   authentication service and profile service are located under the virtual
                   "ScriptServices" directory.  Since you normally call the authentication web
                   service with an un-authenticated user, the following location tag can be used
                   to grant access to anonymous users.  If you use anonymous profile support
                   you will also need to grant access to anonymous users. -->
              <!--
              <location path="ScriptServices">
                <system.web>
                  <authorization>
                    <allow users="*" />
                  </authorization>
                </system.web>    
              </location>
              -->
                <enterpriseLibrary.ConfigurationSource selectedSource="File Configuration Source">
                  <sources>
                    <add name="File Configuration Source" type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.FileConfigurationSource, Microsoft.Practices.EnterpriseLibrary.Common,  Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
                        filePath="entlib.config" />
                  </sources>
                </enterpriseLibrary.ConfigurationSource>
            </configuration>

2 个答案:

答案 0 :(得分:1)

如果它是旧版本的Visual Studio,它不应该抛出错误。新的IIS版本支持向后兼容性。 如果您有32位应用程序,则可以尝试此选项

'从'应用程序池'提前设置启用32位应用程序',这将启用32位模式'工作进程'。请查看以下链接。

http://blogs.msdn.com/b/rakkimk/archive/2007/11/03/iis7-running-32-bit-and-64-bit-asp-net-versions-at-the-same-time-on-different-worker-processes.aspx

http://learn.iis.net/page.aspx/201/32-bit-mode-worker-processes/

http://forums.iis.net/p/1152526/1882555.aspx

答案 1 :(得分:0)

尝试从IIS浏览您的网站。并检查你到达那里的错误。