Размещение службы WCF на IIS - PullRequest
1 голос
/ 21 июня 2010

Я пытаюсь разместить службу WCF с помощью IIS (работает нормально в Cassini).Однако, когда я размещаю его в IIS, я получаю следующую ошибку:

"Соединение было успешно установлено с сервером, но затем произошла ошибка во время процесса входа в систему. (Поставщик: поставщик общей памяти, ошибка: 0 -На другом конце канала нет процессов.) "

Я думал, что это может быть связано с IIS и аутентификацией Windows, поэтому я изменил строку подключения, чтобы напрямую войти в базу данных с помощью идентификатора пользователя и пароля,разница.Я не думаю, что я захожу так далеко, как я ожидал бы ошибку безопасности sql, если бы это было так.

Я установил новый сервер (2008), и все же у меня возникают те же проблемы...

Какие настройки мне нужно реализовать, чтобы все заработало?

Пример кода WCF

private GenericDataClassesDataContext _db = new GenericDataClassesDataContext();

 public ReferenceValue[] GetReferenceValues()
        {
            try
            {
                return _db.ReferenceValues.ToArray();
            }
            catch (Exception e)
            {
                throw new FaultException(e.Message);
            }
        }

Web.Конфиг

<?xml version="1.0"?>
<configuration>
    <appSettings/>
    <connectionStrings>
    <!--<add name="TtasConnectionString" connectionString="Data Source=stdev07;Initial Catalog=Ttas;;uid=srvTtas;pwd=pa$$w0rd;MultipleActiveResultSets=True" providerName="System.Data.SqlClient"/>-->
    <add name="TTASConnectionString" connectionString="Data Source=STDEV07;Initial Catalog=IRF;Integrated Security=SSPI" providerName="System.Data.SqlClient"/>
    </connectionStrings>

  <system.web>
        <compilation debug="true" targetFramework="4.0">
        </compilation>
        <authentication mode="Windows"/>
    <identity impersonate="true"/>      
        <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/></system.web>
    <system.serviceModel>   
        <extensions>
   <behaviorExtensions>
    <add name="silverlightFaults" type="Moe.Tactical.GenericData.Wcf.SilverlightFaultBehavior, Moe.Tactical.GenericData.Wcf, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
   </behaviorExtensions>
  </extensions>
  <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>   
    <behaviors>
       <endpointBehaviors>
          <behavior name="SilverlightFaultBehavior">
             <silverlightFaults />
          </behavior>
       </endpointBehaviors>
       <serviceBehaviors>
          <behavior name="Moe.Tactical.GenericData.Wcf.GenericDataServiceBehavior">
             <serviceMetadata httpGetEnabled="true" />
             <!--<serviceDebug includeExceptionDetailInFaults="false" />-->
             <serviceDebug includeExceptionDetailInFaults="true"/>
          </behavior>
       </serviceBehaviors>
    </behaviors>
    <bindings>
            <basicHttpBinding>
                <binding name="winAuthBasicHttpBinding">
                    <security mode="TransportCredentialOnly">
                        <transport clientCredentialType="Ntlm"/>
                    </security>
                </binding>
            </basicHttpBinding>
        </bindings>
        <services>
            <service behaviorConfiguration="Moe.Tactical.GenericData.Wcf.GenericDataServiceBehavior" name="Moe.Tactical.GenericData.Wcf.GenericDataService">
                <!--bindingConfiguration="winAuthBasicHttpBinding" [in gap]-->
                <endpoint address=""
                  binding="basicHttpBinding"
                  behaviorConfiguration="SilverlightFaultBehavior"
                  contract="Moe.Tactical.GenericData.Wcf.IGenericDataService">
                    <identity>
                        <dns value="localhost:3637"/>
                    </identity>
                </endpoint>
                <!--<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>-->
            </service>
        </services>

    </system.serviceModel>
</configuration>

1 Ответ

0 голосов
/ 22 апреля 2011

Я думаю, причина в следующей строке web.config:

    <identity impersonate="true"/>  

Вы должны изменить его на

    <identity impersonate="false"/> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...