У меня есть IIS 6.0 на Windows Server 2003.
Я установил.NET 3,5 и 4 беты 2. "Нормальные" вещи ASP работают (прекрасные). Но когда я пытаюсь перейти к своему сервису (/myServer/MyService.svc
) Я получаю 404. Страница, не найденная.
Чтобы быть точным, я добрался 404, 2 "политики блокировки расширения веб-сервиса предотвращают этот запрос".
Я использовал ServiceModelReg.exe /ia
чтобы удостовериться, что расширение я известный и я проверил использование конфигурации:
административные средства, iis, вкладка дома, конфигурация, исполняемое поле, и там:
Расширение: .svc, путь: c:\windows\microsoft.net\framework\v4.0.210...
, глаголы: все глаголы.
Таким образом, все кажется OK. Но я все еще получаю 404-2.
] Можете ли вы показать нам ваш web.config на стороне сервера (только в разделе []
])? Где на вашем сервере живет ваша служба?[
]При хостинге в IIS, адрес вашей службы определяется:[
] []так что это будет что-то вроде:[
] [http://YourServer/YourVirtualDirectory/MyService.svc
]
[]Вы, кажется, не используете виртуальную директорию в указанном вами пути - ваш *.svc файл действительно в корне веб-сервера, или вы забыли добавить виртуальную директорию в свой путь?[
].Информация в этой статье блога оказалась бесценной для того, чтобы заставить это работать.
http://xamlcoder.com/blog/?p=7
Я не уверен насчет IIS6, но я создал новый сайт в IIS7 (я не смог заставить все работать в виртуальном каталоге, но это, вероятно, из-за недостатка знаний IIS) Я поместил свой .svc файл в корневой каталог и в ~/Services/
Все начало работать отлично.
В блоге упоминалось, что IIS должен искать в ~/Services/ автоматически при каждом обслуживании .svc файла, но это не работало. Поэтому я просто скопировал .svc файл в корень сайта.
Надеюсь, это поможет.
Ваша "политика блокировки расширения веб-службы" не позволяет расширению ASP.NET 4.0 ISAPI обработать ваш запрос. Это случилось со мной, проверьте это:
C:\>cscript c:\WINDOWS\system32\iisext.vbs /ListFile
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
Connecting to server ...Done.
Status / Extension Path
------------------------
0 C:\WINDOWS\system32\inetsrv\httpodbc.dll
0 C:\WINDOWS\system32\inetsrv\ssinc.dll
0 C:\WINDOWS\system32\inetsrv\asp.dll
1 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
0 *.exe
0 C:\WINDOWS\system32\inetsrv\httpext.dll
0 *.dll
1 C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll
1 C:\WINDOWS\system32\MQISE.DLL
0 C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll
У вас есть "0" рядом с v4.0 aspnet_isapi.dll, как у меня? Это ваша проблема. Вам нужно включить его:
C:\>cscript c:\WINDOWS\system32\iisext.vbs /EnFile C:\WINDOWS\Microsoft.NET\Frame
work64\v4.0.30319\aspnet_isapi.dll
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
Connecting to server ...Done.
Enabling extension file complete.
Для получения дополнительной информации об инструменте iisext.vbs: http://support.microsoft.com/kb/328419/