2012-06-27 16 views
5

Tôi đang cố định cấu hình ràng buộc net.pipe trên máy chủ giữa 2 quy trình (trên cùng một hộp). Tôi có tất cả điều này làm việc cục bộ trong Windows 7, nhưng trên máy chủ sản xuất (Windows Server 2008 R2), nó không hoạt động.Không thể kết nối net.pipe hoạt động trong IIS7.5 trên Windows Server 2008 R2

tôi có thể xác minh rằng tôi có:

  • Added một net.pipe ràng buộc vào IIS "trang web" (thêm * là thông tin).
  • Đã thêm net.pipe vào danh sách các liên kết trong "cài đặt nâng cao" cho IIS "Web Site".

Đó là tất cả những gì được yêu cầu trên máy tính của tôi. Tôi có cần làm gì khác không?

Các lỗi tôi nhận được là từ một đơn giản khách hàng giao diện điều khiển thử nghiệm ứng dụng:

Unhandled Exception: System.ServiceModel.EndpointNotFoundException: Không có điểm cuối nghe tại net.pipe: //nameOfService.svc mà có thể chấp nhận thông điệp. Điều này thường được gây ra bởi một địa chỉ không chính xác hoặc hành động SOAP. Xem InnerException, nếu có, để biết thêm chi tiết. ---> System.IO.PipeException: Các thiết bị đầu cuối đường ống 'net.pipe: //nameOfService.svc' không thể được tìm thấy trên machine.` địa phương của bạn

Dưới đây là một số configs:

Chủ đầu tư:

<system.serviceModel> 
    <bindings> 
     <netNamedPipeBinding> 
      <binding name="NetNamedPipeBinding_IWebAppNotifyService"> 
       <security mode="None" /> 
      </binding> 
     </netNamedPipeBinding> 
    </bindings> 
    <client> 
     <endpoint address="net.pipe://nameOfService.svc" 
      binding="netNamedPipeBinding" bindingConfiguration="NetNamedPipeBinding_IWebAppNotifyService" 
      contract="ServiceReference2.IWebAppNotifyService" name="NetNamedPipeBinding_IWebAppNotifyService" /> 
    </client> 
</system.serviceModel> 

server:

<bindings> 
    <netNamedPipeBinding> 
    <binding name="WebAppNotifyServiceBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" transactionFlow="false" transactionProtocol="OleTransactions" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxBufferSize="65536" maxConnections="10" maxReceivedMessageSize="65536"> 
     <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
     <security mode="None"> 
     </security> 
    </binding> 
    <binding name="ScannerManagerCommandBinding"> 
     <security mode="None" /> 
    </binding> 
    </netNamedPipeBinding> 
</bindings> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name="WebAppNotifyServiceBehavior"> 
     <serviceMetadata httpGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="True" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<services> 
    <service name="MonitoringApp.Notifier.WebAppNotifyService" behaviorConfiguration="WebAppNotifyServiceBehavior"> 
    <host> 
     <baseAddresses> 
     <add baseAddress="net.pipe://nameOfService.svc" /> 
     <add baseAddress="http://nameOfService" /> 
     </baseAddresses> 
    </host> 
    <endpoint address="" binding="netNamedPipeBinding" bindingConfiguration="WebAppNotifyServiceBinding" contract="X.Y.IWebAppNotifyService" /> 
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
    </service> 
</services> 

cập nhật:

012.

Nhóm ứng dụng được kết hợp với trang web lưu trữ ràng buộc net.pipe đang chạy trong người dùng "NetworkService", nếu điều đó tạo ra sự khác biệt.

tôi đã cho phép kích hoạt Non-HTTP dưới Tính năng Windows cho NET 3.5.1, mặc dù điều này đang chạy dưới .NET 4.

+0

Trong các tính năng của Windows, bạn đã bật Windows Communication Foundation Non-HTTP Activation chưa? –

+0

Bạn đã cố gắng sử dụng WCFTestClient.exe công cụ để kiểm tra dịch vụ của bạn? –

+0

Một suy nghĩ khác - như tôi nhớ lại, baseAddress phải tuân theo định dạng sau: {PROTOCOL}: // SERVER_NAME/SERVICE_NAME, tôi có đúng không? –

Trả lời

7
  • Bạn đã kích hoạt các cửa sổ dịch vụ Net.Pipe Listener AdapterWindows Process Activation Service?
  • Bạn đã bật net.pipe ràng buộc trên cấp trang web chưa?
  • Bạn đã thêm giao thức net.pipe ở cấp vdir chưa?
+0

AAAAAAGHHHHHHHH !!!! Đó là dịch vụ nghe net.pipe :) Cảm ơn rất nhiều, dường như điều này bị tắt theo mặc định trên máy chủ win 2008, điều này sẽ có ý nghĩa. –

+0

@MattRoberts: Rất vui được! :) Tôi đã gặp phải một vấn đề tương tự với net.msmq. Bộ điều hợp bộ lắng nghe kích hoạt dịch vụ web của bạn thông qua dịch vụ kích hoạt quy trình. Cả hai nên chạy. – abatishchev

0

Tôi đã nhận được cùng lỗi EndPointNotFound trên net.pipe: // localhost/cho Dịch vụ mã thông báo bảo mật SharePoint.

Nó hoạt động trên hệ thống dev của tôi chứ không phải sản xuất.

Đối với tôi, đó là do dịch vụ Đại lý Kiểm toán thay đổi của Dell đang chạy trên các máy chủ sản xuất của tôi.

https://blogs.msdn.microsoft.com/spses/2016/01/21/sharepoint-2013-unable-to-viewedit-office-documents-in-browser-using-office-web-apps-2013/