Работал над приложением Silverlight, которое подключается к службе WCF на нашем сервере. Я использую .NET 4.0 для разработки. Локально все работает нормально, но я попытался развернуть службу WCF на нашем сервере, и она не работает
Служба работает нормально, я проверил, введя URL в браузере. Но всякий раз, когда я звоню из приложения Silverlight, происходит сбой с ошибкой:
System.ServiceModel.CommunicationException: удаленный сервер возвратил ошибку: NotFound.
Подробная ошибка приведена ниже с моим файлом Web.Config. Я использовал fiddler для проверки сообщений и увидел, что ответ от сервера содержит текст.
а: FailedAuthentication. Доступ запрещен.
Что я могу сделать, чтобы решить эту проблему? Проблема в том, что мой хост-сервер не позволяет включить проверку подлинности Windows в IIS. Не удалось найти настройки для этого. Я использую Godaddy Windows хостинг.
Есть указатели?
Web.Config:
</p>
<pre><code> <authentication mode="Windows"/>
<customErrors mode="Off"/>
<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/></system.web>
<system.serviceModel>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true"></serviceHostingEnvironment>
<services>
<service name="WarpArtOnline.Service1" behaviorConfiguration="WarpArtOnline.Service1Behavior">
<endpoint binding="basicHttpBinding" bindingConfiguration="MaxSizeBinding" contract="WarpArtOnline.IService1">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<!--<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>-->
</service>
</services>
<bindings>
<basicHttpBinding>
<binding name="MaxSizeBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
<security mode="None">
<!--<transport clientCredentialType="Windows"/>-->
<!--<transport clientCredentialType="None" proxyCredentialType="None" realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />-->
</security>
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="WarpArtOnline.Service1Behavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
<dataContractSerializer maxItemsInObjectGraph="2147483647" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
Ошибка:
{System.ServiceModel.CommunicationException: The remote server returned an error: NotFound. ---> System.Net.WebException: The remote server returned an error: NotFound. ---> System.Net.WebException: The remote server returned an error: NotFound.
at System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
at System.Net.Browser.BrowserHttpWebRequest.<>c_<em>DisplayClass5.b</em>_4(Object sendState)
at System.Net.Browser.AsyncHelper.<>c_<em>DisplayClass4.b</em>_1(Object sendState)
--- End of inner exception stack trace ---
at System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state)
at System.Net.Browser.BrowserHttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelAsyncRequest.CompleteGetResponse(IAsyncResult result)
--- End of inner exception stack trace ---
at System.ServiceModel.AsyncResult.End[TAsyncResult](IAsyncResult result)
at System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End(SendAsyncResult result)
at System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult result)
at System.ServiceModel.ClientBase<code>1.ChannelBase
1.EndInvoke (String methodName, Object [] args, результат IAsyncResult)
в ImagingSL.WebWarp.Service1Client.Service1ClientChannel.EndwarpImage (результат IAsyncResult)
в ImagingSL.WebWarp.Service1Client.ImagingSL.WebWarp.IService1.EndwarpImage (результат IAsyncResult)
в ImagingSL.WebWarp.Service1Client.OnEndwarpImage (результат IAsyncResult)
в System.ServiceModel.ClientBase`1.OnAsyncCallCompleted (результат IAsyncResult)}