мой веб-сервис работает локально, но не тогда, когда он развернут - PullRequest
1 голос
/ 28 мая 2010

При развертывании веб-службы появляется следующая ошибка:

Для расширения '.svc' не зарегистрирован ни один поставщик сборок. Вы можете зарегистрировать один в разделе в machine.config или web.config. Убедитесь, что он имеет атрибут BuildProviderAppliesToAttribute, который включает значение «Web» или «All».

Я нашел один поток (http://forums.asp.net/t/1228638.aspx), который предложил решение, но я не могу заставить его работать. Если я внесу изменения в мой файл веб-конфигурации, как предложено в теме, я получу ошибку конфигурации Одна странность заключается в том, что, если я проверю файл machine.config на своем компьютере, расположенный по адресу C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG \ machine.config, я не вижу ни одного из настройки конфига описаны в теме. На самом деле вообще нет упоминаний о «компиляции» или «buildProviders».

Он-лайн документы, которые я нашел относительно 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 голосов
/ 28 мая 2010

Я только что разговаривал по телефону с хостинг-провайдером (GoDaddy). Они не размещают веб-сервисы на своих серверах общего хостинга. Итак, это и стало причиной ошибки.

Мне придется использовать другую опцию.

0 голосов
/ 28 мая 2010

Я не могу сказать, какая у вас версия ОС или IIS, тем не менее, вы пытались использовать ServiceModel Registration Tool в IIS с переключателем i

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...