Мой web.config, написанный на windows xp, не работает на iis7
У меня есть много веб-приложений, разработанных с Visual Studio 2005, 2008, 2010, и все они разработаны на Windows XP и IIS
все эти веб-приложения не работают на iis7, отображая эту ошибку
Ошибка сервера
500 - внутренняя ошибка сервера. Возникла проблема с ресурсом, который вы ищете, и он не может быть отображен.
даже если я включил ошибки, чтобы включить подробные ошибки, это по-прежнему так
Есть ли инструмент для преобразования этих файлов web.config для работы на ii7
я не могу изменить их вручную один за другим, потому что есть десятки веб-приложений
пожалуйста посоветуй
Пример:
<?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 ответа
Не следует выдавать ошибку, если написана более старая версия Visual Studio. Новая версия IIS поддерживает обратную совместимость. Вы можете попробовать эту опцию, если у вас есть 32-битное приложение,
"Включить 32-битное приложение" из дополнительных настроек "Пул приложений", которые активируют 32-битный режим "Рабочий процесс". Проверьте следующие ссылки.
http://learn.iis.net/page.aspx/201/32-bit-mode-worker-processes/
Попробуйте просмотреть ваш сайт из IIS. И проверь, какую ошибку ты там получаешь.