2013-05-22 1 views
1

이 문제에 대한 검색 결과는 많지만 도움이되지는 않습니다.WCF 데이터 서버에 액세스 할 때 404 오류가 발생합니다. MVC 3, IIS 7에서

WCF 데이터 서비스는 개발자 환경에서는 준비 서버에서 행복하게 실행되지만 라이브 서버에서는 실행되지 않습니다. 나는

routes.IgnoreRoute("API4/HUB.svc"); 
routes.IgnoreRoute("API4/HUB.svc/{*pathInfo}"); 

시도했다 그러나 그것은 단지 404

흥미롭게는 IIS에 MVC (404)에서 오류를 변경, 내가 한 이미 몇 WCF 서비스가 실행하지만, 첫 번째 WCF 데이터입니다 서비스.

내가 말했듯이, 나는 Google이 제안한 모든 것을 시도해 봤으며 어떤 힌트에도 감사 할 것입니다.

<configuration> 
    <configSections> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
    <!--<section name="uri" type="System.Configuration.UriSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>--> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
     <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > 
      <section name="MomentumHub.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
     </sectionGroup> 
    </configSections> 
    <appSettings> 
    <add key="webpages:Version" value="1.0.0.0" /> 
    <add key="ClientValidationEnabled" value="true" /> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 

    </appSettings> 
    <connectionStrings> 
    <add name="HUBAPIdb" connectionString="metadata=res://*/API4.HUBAPIdb.csdl|res://*/API4.HUBAPIdb.ssdl|res://*/API4.HUBAPIdb.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.\;initial catalog=HUB;user id=...;password=...;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
    </connectionStrings> 
    <system.web> 
    <compilation debug="true" targetFramework="4.5"> 
     <assemblies> 
     <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
     </assemblies> 
    </compilation> 
    <authentication mode="Forms"> 
     <forms loginUrl="~/Account/Login" timeout="2880" /> 
    </authentication> 
    <membership defaultProvider="HUBMembershipProvider"> 
     <providers> 
     <clear/> 
     <add name="HUBMembershipProvider" type="MomentumHub.Models.HUBMembershipProvider, MomentumHub" /> 
     </providers> 
    </membership> 
    <roleManager defaultProvider="HUBRoleProvider" enabled="true" cacheRolesInCookie="true"> 
     <providers> 
     <clear/> 
     <add name="HUBRoleProvider" type="MomentumHub.Models.HUBRoleProvider, MomentumHub" /> 
     </providers> 
    </roleManager> 
    <pages> 
     <namespaces> 
     <add namespace="System.Web.Helpers" /> 
     <add namespace="System.Web.Mvc" /> 
     <add namespace="System.Web.Mvc.Ajax" /> 
     <add namespace="System.Web.Mvc.Html" /> 
     <add namespace="System.Web.Routing" /> 
     <add namespace="System.Web.WebPages" /> 
     </namespaces> 
    </pages> 
    </system.web> 
    <system.webServer> 
    <validation validateIntegratedModeConfiguration="false" /> 
    <modules runAllManagedModulesForAllRequests="true"> 
     <remove name="WebDAVModule" /> 
    </modules> 
    </system.webServer> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" /> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="4.5.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
    <system.serviceModel> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name=""> 
      <serviceMetadata httpGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="false" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 
     <bindings> 
      <basicHttpBinding> 
       <binding name="TextAnywhere_SMSSoap" closeTimeout="00:01:00" 
       openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" 
       allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" 
       maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" 
       messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" 
       useDefaultWebProxy="true"> 
        <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" 
        maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
        <security mode="None"> 
         <transport clientCredentialType="None" proxyCredentialType="None" 
         realm="" /> 
         <message clientCredentialType="UserName" algorithmSuite="Default" /> 
        </security> 
       </binding> 
       <binding name="ServiceSoap" /> 
      </basicHttpBinding> 
     </bindings> 
     <client> 
      <endpoint address="http://ws.textanywhere.net/ta_sms.asmx" binding="basicHttpBinding" 
      bindingConfiguration="TextAnywhere_SMSSoap" contract="TextAnywhere_SMS.TextAnywhere_SMSSoap" 
      name="TextAnywhere_SMSSoap" /> 
      <endpoint address="http://www.textapp.net/webservice/service.asmx" binding="basicHttpBinding" bindingConfiguration="ServiceSoap" contract="TextAnywhere_SMS_v2.ServiceSoap" name="ServiceSoap" /> 
     </client> 
    </system.serviceModel> 
    <!--<uri> 
    --> 
    <!-- The uri section is necessary to turn on .NET 3.5 support for IDN (international domain names), 
     which is necessary for OpenID urls with unicode characters in the domain/host name. 
     It is also required to put the Uri class into RFC 3986 escaping mode, which OpenID and OAuth require. --> 
    <!-- 
    <idn enabled="All"/> 
    <iriParsing enabled="true"/> 
    </uri>--> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="data source=.\;initial catalog=HUB;user id=...;password=...;multipleactiveresultsets=True" /> 
     </parameters> 
    </defaultConnectionFactory> 
    </entityFramework> 
    </applicationSettings> 
</configuration> 
+0

.net 버전 문제 일 가능성이 있으십니까? .net 4.5 프로덕션 서버에 설치되어 있습니까? 나는 wcf 서비스를 mvc 응용 프로그램 내에서 'route.IgnoreRoute ("{resource} .svc/{* pathInfo}") 경로를 무시하기 전에 실행했습니다. 잘못된 .net 버전을 사용하도록 구성된 응용 프로그램 풀? – WestDiscGolf

+0

그냥 두 번 확인 :. NET 4.5가 설치되어, 응용 프로그램은 4.0 응용 프로그램 풀을 사용합니다. 괜찮을거야. – tkglaser

+0

준비 서버에서 IIS 설정을 내보내고 프로덕션 환경의 설정과 비교해 보았습니까? 사이트/가상 디렉터리를 만들기 위해 프로덕션으로 가져올 수도 있습니다. 길에서 와일드 카드 매핑? * .svc 설치 프로그램에서 다른 확장 프로그램을 사용할 수 있습니까? * 머리를 긁으십시오 * – WestDiscGolf

답변

0

I는 문제가 발견

여기 (제거 민감한 데이터) 전체의 Web.config이다. 서버의 Plesk였습니다. 모든 표준 HTTP 처리기를 제거하고 WCF 데이터 서비스를 처리하지 않는 독점 Plesk 프로토콜로 대체하는 것이 좋습니다.