Установка приложения.NET на IIS 7.5 проблемы
Я пытаюсь установить веб-сервис, который какой-то другой парень написал в.NET. У меня есть базовое понимание IIS. Веб-служба прекрасно работает на моем компьютере разработчика, но когда я пытаюсь переместить веб-службу на рабочий сервер, происходят плохие вещи.
Веб-сервис находится по адресу C:\inetpub\wwwroot\
на сервере разработчиков. Но на этом производственном сервере он должен находиться по адресу D:\services\
,
Мне удалось установить приложение на производственном сервере, и все, кажется, хорошо и модно. Но когда я Test Settings
в начальной настройке я получаю Invalid application path
ошибка. Я могу просто закрыть его и установить его, но потом, когда я пытаюсь получить доступ к веб-сервису (в http://myserver.com/webservice/GetData
) Ничего не произошло. Просто пустая страница, и когда я проверяю заголовки ответа, появляется 500
ошибка.
Я не знаю, что здесь происходит или где проблема. Вот файл конфигурации, так что кто-то может заметить что-то странное.
РЕДАКТИРОВАТЬ: файл конфигурации с моего сервера разработки. Я просто скопировал его на свой рабочий сервер... но это явно не сработало:-)
ОБНОВЛЕНИЕ: я заметил, что мой dev-сервер работает в пуле приложений с Net 4 и в "классическом" "режиме". На рабочем сервере он был в NET 4, но в "интегрированном" режиме. Так что я изменил его на "классический". Я все еще получаю пустую страницу. Но проверка журнала выведет это:
2012-10-03 14:57:00 ip удален GET / boo / GetData - 80 - ip удален Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:15.0)+Gecko/20100101+Firefox/15.0.1 404 2 1260 203
ОБНОВЛЕНИЕ 2: Спасибо, ребята, за вашу помощь. Ваши комментарии помогли, что искать. После долгих поисков логов и управления правами я нашел эту Microsoft KB.
После проверки ограничений ISAPI и CGI на уровне сервера я обнаружил, что.NET 4 и.NET 4 64 не разрешены. После разрешения обоих, наконец, мой веб-сервис начал говорить.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<identity impersonate="true" />
<!-- Impersonate NT AUTHORITY/IUSR -->
<compilation targetFramework="4.0">
<assemblies>
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b7735c561131e089" />
</assemblies>
</compilation>
<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" />
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<httpErrors existingResponse="PassThrough" />
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
<directoryBrowse enabled="false" />
</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>
<connectionStrings>
<add name="Entities" connectionString="metadata=res://*/DataModel.csdl|res://*/DataModel.ssdl|res://*/DataModel.msl;provider=System.Data.SqlClient;provider connection string="data source=someip;initial catalog=db_90;User ID=user1;Password=access2;multipleactiveresultsets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
1 ответ
Это может быть лучшим вопросом для stackoverflow.com, но я пока попробую.
С точки зрения IIS, если вы можете обнаружить конкретную ошибку 500, это может дать большую подсказку. Проверьте журналы IIS в каталоге c:\inetpub\logs\Logfiles\w3svc{siteid}. Найдите записи для ваших неудачных тестов, и ближе к концу записей вы увидите 500{пробел} {что-то} {пробел} {что-то}. Это {что-то} имеет дополнительные подсказки.
Еще один тест - создать простой файл test.aspx в корневой папке сайта и убедиться, что сайт IIS также работает хорошо.