2011-08-16 41 views
36

IN VS 2008 i có thể chạy .svc nhưng trên sản xuất IIS 7 tôi không thể. Tôi gặp lỗi này. tôi đang sử dụng chiến thắng x64.Lỗi HTTP 404.17 - Không tìm thấy

tôi chạy

C:\Windows\Microsoft.NET\Framework\v2.5.0.30319>aspnet_regiis.exe -i 
Start installing ASP.NET (4.0.30319). 
......................... 

C:\Windows\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis.exe -i 
The error indicates that IIS is not installed on the machine. Please install IIS 
Finished installing ASP.NET (2.0.50727). 

nhưng nó là như nhau. Tôi chạy VS 2008. Hồ bơi ứng dụng: NET framweork là 2.0. Và tôi cho phép 32 đơn chút

Error Summary 
HTTP Error 404.17 - Not Found 
The requested content appears to be script and will not be served by the static file handler. 
Detailed Error Information 
Module StaticFileModule 
Notification ExecuteRequestHandler 
Handler StaticFile 
Error Code 0x80070032 
Requested URL http://192.168.2.4:80/Service.svc 
Physical Path C:\inetpub\wwwroot\WebServices\Service.svc 
Logon Method Anonymous 
Logon User Anonymous 
Most likely causes: 

    The request matched a wildcard mime map. The request is mapped to the static file handler. If there were different pre-conditions, the request will map to a different handler. 

Things you can try: 

    If you want to serve this content as a static file, add an explicit MIME map. 

EDIT:

web.config

<?xml version="1.0"?> 

<!-- 
    Note: As an alternative to hand editing this file you can use the 
    web admin tool to configure settings for your application. Use 
    the Website->Asp.Net Configuration option in Visual Studio. 
    A full list of settings and comments can be found in 
    machine.config.comments usually located in 
    \Windows\Microsoft.Net\Framework\v2.x\Config 
--> 
<configuration> 
    <configSections> 
     <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> 
     <section name="nhibernateSettings" type="ProjectBase.Data.NHibernateSessionMgmt.OpenSessionInViewSection, ProjectBase.Data" /> 
     <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
      <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
       <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" /> 
       <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
        <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" /> 
        <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" /> 
        <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" /> 
        <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" /> 
       </sectionGroup> 
      </sectionGroup> 
     </sectionGroup> 
    </configSections> 
    <appSettings> 
     <add key="NHibernateConfigPath" value="D:\PROJEKTI\WebServices\DotNet\WebServices\WebServices\NHibernate.config" /> 
    </appSettings> 
    <connectionStrings> 
     <add name="connectionString" connectionString="Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=WebServices;Data Source=.\SQL2008" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
    <nhibernateSettings> 
     <!-- List every session factory that will be needed; transaction management and closing sessions 
      will be managed with the open-session-in-view module --> 
     <sessionFactories> 
      <clearFactories /> 
      <sessionFactory name="WebCrawlerFactory" factoryConfigPath="D:\PROJEKTI\WebServices\DotNet\WebServices\WebServices\NHibernate.config" isTransactional="true" /> 
     </sessionFactories> 
    </nhibernateSettings> 
    <log4net> 
     <appender name="LogAllToFile" type="log4net.Appender.FileAppender"> 
      <file value="WebCrawler.log" /> 
      <appendToFile value="false" /> 
      <layout type="log4net.Layout.PatternLayout"> 
       <conversionPattern value="%d [%t] %-5l - %m%n%n" /> 
      </layout> 
     </appender> 
     <root> 
      <priority value="ALL" /> 
      <!-- ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF--> 
      <appender-ref ref="LogAllToFile" /> 
     </root> 
    </log4net> 
    <system.web> 
     <!-- 
      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"> 
      <assemblies> 
       <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> 
       <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
      </assemblies> 
     </compilation> 
     <!-- 
      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> 
     --> 
     <pages> 
      <controls> 
       <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
      </controls> 
     </pages> 
     <httpHandlers> 
      <remove verb="*" path="*.asmx" /> 
      <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
      <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
      <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" /> 
     </httpHandlers> 
     <httpModules> 
      <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     </httpModules> 
    </system.web> 
    <system.codedom> 
     <compilers> 
      <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
       <providerOption name="CompilerVersion" value="v3.5" /> 
       <providerOption name="WarnAsError" value="false" /> 
      </compiler> 
     </compilers> 
    </system.codedom> 
    <system.web.extensions> 
     <scripting> 
      <webServices> 
       <!-- 
       Uncomment this section to enable the authentication service. Include 
       requireSSL="true" if appropriate. 

      <authenticationService enabled="true" requireSSL = "true|false"/> 
      --> 
       <!-- 
       Uncomment these lines to enable the profile service, and to choose the 
       profile properties that can be retrieved and modified in ASP.NET AJAX 
       applications. 

      <profileService enabled="true" 
          readAccessProperties="propertyname1,propertyname2" 
          writeAccessProperties="propertyname1,propertyname2" /> 
      --> 
       <!-- 
       Uncomment this section to enable the role service. 

      <roleService enabled="true"/> 
      --> 
      </webServices> 
      <!-- 
     <scriptResourceHandler enableCompression="true" enableCaching="true" /> 
     --> 
     </scripting> 
    </system.web.extensions> 
    <!-- 
     The system.webServer section is required for running ASP.NET AJAX under Internet 
     Information Services 7.0. It is not necessary for previous version of IIS. 
    --> 
    <system.webServer> 
     <validation validateIntegratedModeConfiguration="false" /> 
     <modules> 
      <add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     </modules> 
     <handlers> 
      <remove name="WebServiceHandlerFactory-Integrated" /> 
      <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
      <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
      <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     </handlers> 
    </system.webServer> 
    <system.serviceModel> 
     <services> 
      <service name="WebServices.Service" behaviorConfiguration="WebServices.ServiceBehavior"> 
       <!-- Service Endpoints --> 
       <endpoint address="" binding="wsHttpBinding" contract="WebServices.IService"> 
        <!-- 
       Upon deployment, the following identity element should be removed or replaced to reflect the 
       identity under which the deployed service runs. If removed, WCF will infer an appropriate identity 
       automatically. 
      --> 
        <identity> 
         <dns value="localhost" /> 
        </identity> 
       </endpoint> 
       <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
      </service> 
     </services> 
     <behaviors> 
      <serviceBehaviors> 
       <behavior name="WebServices.ServiceBehavior"> 
        <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment --> 
        <serviceMetadata httpGetEnabled="true" /> 
        <!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information --> 
        <serviceDebug includeExceptionDetailInFaults="false" /> 
       </behavior> 
      </serviceBehaviors> 
     </behaviors> 
    </system.serviceModel> 
</configuration> 

Trả lời

45

tôi đã receievd một lỗi tương tự:

HTTP Error 404.17 - Not Found 
The requested content appears to be script and will not be served by the static file handler. 

tôi đã cố gắng cùng mã trên một số máy. Thông qua một số R & D, cuối cùng tôi thấy rằng nguyên nhân cho điều này có thể là bản đồ WCF không được đăng ký với IIS.

Để giải quyết lỗi trên:

  1. Navigate to "C: \ Windows \ Microsoft.NET \ Framework \ v3.0 \ Windows Communication Foundation" tại Visual Studio lệnh nhắc
  2. Execute " servicemodelreg -i "để cài đặt ánh xạ theo cách thủ công
1

There is a duplicate 'system.web.extensions/scripting/scriptResourceHandler' section defined

Hoặc bạn có 2 nút cho <scriptResourceHandler> trong web.config của bạn, hoặc tập tin .svc của bạn có web.config riêng và có một web.config khác trong cùng một ứng dụng IIS định nghĩa <scriptResourceHandler>. Nếu điều này được cho là một trang web độc lập được lồng trong một trang ASP.NET khác, bạn sẽ cần tạo nó như một ứng dụng thông qua công cụ quản trị IIS, nhưng không biết trang web/ứng dụng của bạn được cấu trúc như thế nào, tôi không thể cung cấp nhiều trợ giúp hơn.

+0

tôi không có 2 scriptResourceHandler và cũng không phải 2 web.config – senzacionale

2

Ánh xạ WCF không được đăng ký với IIS.

Navigate to C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation và thực hiện servicemodelreg -i để cài đặt chúng bằng tay

+3

Câu trả lời trùng lặp của câu trả lời được chấp nhận, nhưng với thông tin ít hữu ích hơn. –

75

enter image description here Issue đã được giải quyết bằng cách cho phép các nền tảng truyền thông cửa sổ -> HttpActivation trên cửa sổ tính năng.

+4

Phải làm cả kích hoạt 3.5 và 4.5 vì một số lý do. Cảm ơn! – kampsj

+3

CUỐI CÙNG! Sau khi cài đặt lại mọi thứ một tỷ lần, chạy tất cả các giải pháp reg (aspnet_regiis và servicemodelreg) ... cuối cùng đã tìm thấy vấn đề. Trong Windows 8, nó có trong Windows Features -> .NET Framework 4.5 Advanced Services -> WCF Services -> HTTP Activation Cảm ơn rất nhiều! – Nullius

+0

+ 1.. Làm việc cho tôi. cảm ơn..!! –

1

Đối với máy Win7, các thiết lập tương tự có thể được thực hiện theo Conrol Panel -> Programs and Features -> Turn Windows hoặc tắt tính năng

enter image description here

0

đã vừa được chiến đấu với một dịch vụ WCF BizTalk triển khai trên Windows Server 2012 IIS. Và sau khi kiểm tra Mọi thứ khác, một cái gì đó khác bắn vào tâm trí, hồ bơi ứng dụng. NẾU hồ bơi ứng dụng được đặt ở chế độ Cổ điển, bạn cần phải có httpHandlers trong Kiểm soát, chúng cần được xác định cho tất cả các loại tệp bạn định sử dụng. Nếu bạn chạy ứng dụng trong chế độ Tích hợp, IIS sẽ xử lý việc này tốt. Có thể là tốt cho một người thấy mình ở đây sau khi googling.:)

-1

Tôi đã phải thêm ánh xạ xử lý theo cách thủ công cho svc NET 4.0. Bằng cách nào đó họ đã biến mất khỏi danh sách ánh xạ IIS.

Tôi đã có ý tưởng HERE.

Các vấn đề liên quan