Достъпът до WCF Windows услуга е отказан

Не разбирам... Имам WCF Windows услуга, която вече не мога да извикам... Винаги получавам тази грешка:

Не може да се зареди файл или сборка „Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a“ или една от неговите зависимости. Достъпът е отказан

Тези неща работеха перфектно до преди няколко дни, когато направих някои настройки. Сега не мога да се отърва от него, каквото и да правя.

Конфигурационният файл на услугата е:

<system.serviceModel>
  <services>
    <service name="myService"
             behaviorConfiguration="TransfertServiceBehavior">
      <host>
        <baseAddresses>
          <add baseAddress="net.tcp://localhost:8097/MyService"/>
        </baseAddresses>
      </host>
      <endpoint address=""
                binding="netTcpBinding"
                bindingConfiguration="TransactionalBinding"
                contract="myContract" />
      <endpoint address="mex"
                binding="mexTcpBinding"
                contract="IMetadataExchange" />
    </service>
  </services>
  <bindings>
    <netTcpBinding>
      <binding name="TransactionalBinding" transactionFlow="true" transferMode="Streamed"
               maxReceivedMessageSize="1000000000">
         <readerQuotas maxDepth="10000" maxStringContentLength="1000000000"
                       maxArrayLength="1000000000" maxBytesPerRead="10000" 
                       maxNameTableCharCount="10000" />
         <security mode="Transport" />
      </binding>
    </netTcpBinding>
  </bindings>
  <behaviors>
    <serviceBehaviors>
      <behavior name="TransfertServiceBehavior">
        <serviceMetadata httpGetEnabled="False"/>
        <serviceDebug includeExceptionDetailInFaults="False"/>
      </behavior>
    </serviceBehaviors>
  </behaviors>
</system.serviceModel>

Докато конфигурацията на клиента е тук:

<system.serviceModel>
  <bindings>
    <netTcpBinding>
      <binding name="NetTcpBinding_SI6ISupportTransfert" closeTimeout="00:01:00"
               openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
               transactionFlow="true" transferMode="Streamed" 
               transactionProtocol="OleTransactions"
               hostNameComparisonMode="StrongWildcard" listenBacklog="10"
               maxBufferPoolSize="524288" maxBufferSize="65536" maxConnections="10"
               maxReceivedMessageSize="65536">
         <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                       maxBytesPerRead="4096" maxNameTableCharCount="16384" />
         <reliableSession ordered="true" inactivityTimeout="00:10:00"
                          enabled="false" />
         <security mode="Transport">
            <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
            <message clientCredentialType="Windows" />
         </security>
      </binding>
    </netTcpBinding>
  </bindings>
  <client>
     <endpoint address="net.tcp://localhost:8095/myService"
               binding="netTcpBinding" 
               bindingConfiguration="NetTcpBinding_SI6ISupportTransfert"
               contract="myContract" name="mySevice">
         <identity>
            <userPrincipalName value="user@myDomain" />
         </identity>
     </endpoint>
  </client>
</system.serviceModel>

Някаква идея какво може да причини това изключение „Достъпът е отказан“???


person Patrice Cote    schedule 15.08.2011    source източник
comment
Какво точно ощипване направихте?   -  person Grant Thomas    schedule 16.08.2011
comment
Коя версия на .NET използвате? Променили ли сте самоличността, под която работи услугата?   -  person Richard Blewett    schedule 16.08.2011
comment
Как управлявате услугата? достъпвате ли приложението чрез мрежов драйвер?   -  person Jack    schedule 16.08.2011


Отговори (1)


Грешката е „Отказан достъп“ при зареждане на една от dll на .net framework.

Може да са няколко неща:

  • Тази версия на .net framework е премахната от сървъра
  • Потребителят, който е самоличността на сървъра, няма достъп до dll файловете на рамката
  • Паролата на потребителя, която е идентичността на сървъра, е изтекла.
  • Паролата на потребителя, която е идентичността на сървъра, е променена.

Опитайте да спрете и стартирате услугата, за да проверите паролата.

Опитайте да преинсталирате услугата, за да проверите версията на .net framework.

person Shiraz Bhaiji    schedule 16.08.2011