2010-05-28 144 views
1

當我部署我的web服務,我得到以下錯誤:我的web服務本地工作,但不是當它被部署

沒有爲擴展名沒有註冊的生成提供「.SVC」。您可以在machine.config或web.config的部分中註冊一個。確保具有包含值'Web'或'All'的BuildProviderAppliesToAttribute屬性。

我發現一個線程(http://forums.asp.net/t/1228638.aspx)提出了一個解決方案,但是,我無法讓它工作。如果我按照線程中的建議對我的Web配置文件進行更改,則會出現配置錯誤。奇怪的是,如果我檢查我的機器上的machine.config文件,位於C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG \ machine.config,我沒有看到任何配置線程中描述的設置。事實上,根本沒有提及「編譯」或「構建提供者」。

我找到關於BuildProviderAppliesToAttribute的在線文檔沒有任何幫助。

在此先感謝您提供的任何建議。

這裏是我的整個配置文件清單:

<?xml version="1.0"?> 
<configuration> 
    <configSections> 
     <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/> 
    <connectionStrings> 
     <clear/> 
     <add name="connStr" connectionString="Server=myDataServerName;Database=myDatabaseName;Uid=myUserName;Pwd=myPassword" providerName="System.Data.SqlClient"/> 
     <add name="connUsers" connectionString="Server=myMembershipProviderName;Database=myOtherDatabaseName;Uid=myOtherUserName;Pwd=myOtherPassword" providerName="System.Data.SqlClient"/> 
    </connectionStrings> 
    <system.web> 
     <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> 
     <authentication mode="Forms"/> 
     <membership defaultProvider="SqlMembershipProvider"> 
      <providers> 
       <clear/> 
       <add name="SqlMembershipProvider" connectionStringName="connUsers" applicationName="MyXMLService" type="System.Web.Security.SqlMembershipProvider"/> 
      </providers> 
     </membership> 
     <roleManager enabled="true" defaultProvider="SqlRoleManager"> 
      <providers> 
       <clear/> 
       <add name="SqlRoleManager" connectionStringName="connUsers" applicationName="MyXMLService" type="System.Web.Security.SqlRoleProvider"/> 
      </providers> 
     </roleManager> 
     <customErrors mode="Off"/> 
     <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.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="MyDataSvc.MyData" behaviorConfiguration="MyDataSvc.MyDataBehavior"> 
       <endpoint address="" binding="basicHttpBinding" contract="MyDataSvc.IMyData"> 
       </endpoint> 
      </service> 
     </services> 
     <behaviors> 
      <serviceBehaviors> 
       <behavior name="MyDataSvc.MyDataBehavior"> 
        <!-- 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="true"/> 
       </behavior> 
      </serviceBehaviors> 
     </behaviors> 
    </system.serviceModel> 
</configuration> 

回答

0

我不能告訴你的是什麼操作系統或IIS版本,這麼說,你嘗試使用ServiceModel Registration Tool IIS上與i開關

+0

謝謝你的迴應。 託管服務器正在運行IIS 7.0。我已啓用支持: ASP.Net運行時版本:2.0/3.0/3.5 我懷疑我將能夠在託管服務上運行命令行工具,這就是爲什麼我希望能夠使用web解決此問題.config文件。但是,我會看看我的選擇。 – rogdawg 2010-05-28 14:48:09

0

我剛剛與託管服務提供商(GoDaddy)通電話。他們不在他們的共享託管服務器上託管Web服務。所以,這是錯誤的原因。我將不得不使用不同的選項。

相關問題