我的Web服务在本地工作,但不是在部署时

时间:2010-05-28 14:20:50

标签: asp.net service web-config

当我部署我的Web服务时,出现以下错误:

没有为扩展名'.svc'注册的构建提供程序。您可以在machine.config或web.config中的部分中注册一个。确保具有BuildProviderAppliesToAttribute属性,该属性包含值“Web”或“全部”。

我发现一个线程(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>  

2 个答案:

答案 0 :(得分:0)

我不知道你的操作系统或IIS版本是什么,说过,你是否尝试过使用带有i开关的IIS上的ServiceModel Registration Tool

答案 1 :(得分:0)

我刚刚与托管服务提供商(GoDaddy)通电话。它们不在其共享主机服务器上托管Web服务。所以,这就是错误的原因。

我将不得不使用其他选项。