2010-06-02 14 views
11

में डब्ल्यूसीएफ सेवा के साथ "मेरे पास एक डब्ल्यूसीएफ सेवा है जिसे मैंने इस त्रुटि के कारण कुछ भी नहीं किया है। यह मुझे दीवार ऊपर चला रहा है। मेरे पास अब क्या है।"रिमोट सर्वर ने एक त्रुटि लौटा दी: (403) अवरुद्ध" https

एक विधि के साथ एक बहुत ही सरल डब्ल्यूसीएफ सेवा जो मूल्य, "परीक्षण" के साथ एक स्ट्रिंग देता है।

सेवा का उपयोग करने वाला एक बहुत ही सरल वेब ऐप और स्ट्रिंग के मान को लेबल में रखता है।

एक वेब सर्वर एक एसएसएल प्रमाणपत्र के साथ विन 2003 पर आईआईएस 6 चला रहा है।

अन्य डब्ल्यूसीएफ सेवाएं जो उसी सर्वर पर काम करती हैं।

मैं WCF सेवा प्रकाशित यह https स्थान

मैं वी.एस. में डिबग मोड में वेब एप्लिकेशन को चलाने के है और इसे पूरी तरह से काम करता है।

मैं प्रकाशित यह करने के लिए वेब अनुप्रयोग https है एक ही सर्वर WCF सेवा एक ही SSL प्रमाणपत्र

मैं के तहत रहता है पर स्थान, "दूरस्थ सर्वर ने एक त्रुटि दिखाई: (403) निषिद्ध"

मैंने आईआईएस के साथ-साथ डब्ल्यूसीएफ और वेब ऐप में लगभग हर सेटिंग को कोई फायदा नहीं हुआ है। मैंने डब्ल्यूसीएफ सेवाओं में सेटिंग की तुलना की है जो काम करते हैं और सबकुछ एक जैसा है।

नीचे WCF सेवा और वेब अनुप्रयोग के लिए web.config में सेटिंग कर रहे हैं:

ऐसा प्रतीत होता है समस्या वेब एप्लिकेशन के साथ क्या करना है, लेकिन मैं विचारों से बाहर हूँ। कोई भी विचार:

WCF सेवा:

<system.serviceModel> 
<bindings> 

<client /> 

<services> 
    <service behaviorConfiguration="Ucf.Smtp.Wcf.SmtpServiceBehavior" name="Ucf.Smtp.Wcf.SmtpService"> 
    <host> 
     <baseAddresses> 
     <add baseAddress="https://test.net.ucf.edu/webservices/Smtp/" /> 
     </baseAddresses> 
    </host> 
    <endpoint address="" binding="wsHttpBinding" contract="Ucf.Smtp.Wcf.ISmtpService" bindingConfiguration="SSLBinding"> 
     <identity> 
     <dns value="localhost"/> 
     </identity> 
    </endpoint> 
    <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange"/> 
    </service> 
</services> 

<behaviors> 
    <serviceBehaviors> 
    <behavior name="Ucf.Smtp.Wcf.SmtpServiceBehavior"> 
     <serviceMetadata httpsGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="true" httpsHelpPageEnabled="True"/> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 

वेब एप्लिकेशन:

<system.serviceModel> 
    <bindings><wsHttpBinding> 
<binding name="WSHttpBinding_ISmtpService" closeTimeout="00:01:00" 
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" 
bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" 
maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" 
textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false"> 
<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="None" proxyCredentialType="None" 
    realm="" /> 
    <message clientCredentialType="Windows" negotiateServiceCredential="true" 
    establishSecurityContext="true" /> 
</security> 
</binding> 

<client> 


<endpoint address="https://net228.net.ucf.edu/webservices/smtp/SmtpService.svc" 
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_ISmtpService" 
contract="SmtpService.ISmtpService" name="WSHttpBinding_ISmtpService"> 
<identity> 
<dns value="localhost" /> 
</identity> 

</client> 
</system.serviceModel> 

उत्तर

4

मैं इस समस्या पर घंटे और घंटे बिताने के बाद अपने ही सवाल का जवाब देने जा रहा हूँ।मुझे उम्मीद है कि इससे उन सभी अन्य लोगों की मदद मिलती है जिन्होंने दीवारों के खिलाफ अपने सिर को हराया है ताकि इसे समझने की कोशिश की जा सके। आखिर में हमने नेटवर्क प्रशासक को शामिल किया और इसे हल किया।

परिदृश्य और समाधान है:

हम एक उत्पादन सर्वर है - सब कुछ ठीक काम करता है। हमारे पास एक परीक्षण सर्वर है - हमें 403 प्रतिबंधित त्रुटि मिलती है। स्थानीय स्तर पर डिबगिंग ठीक काम करता है।

सभी सेटिंग समान हैं या इसलिए हमने सोचा।

एक सेटिंग गलत है। निर्देशिका सुरक्षा टैब के अंतर्गत webservice की वर्चुअल निर्देशिका के गुणों में IIS में, दूसरा संपादन बटन आईपी प्रतिबंधों के लिए है। हम सूची के अलावा आईपी को शामिल करने वाले सूची को छोड़कर सभी आईपी तक पहुंच से इनकार करने के लिए सेट किया गया था। परीक्षण वेबसर्वर का आईपी अधिकार नहीं दिया गया था। इसका अधिकार नहीं था कि यह हाल ही में उत्पादन आभासी सर्वर से क्लोन किया गया था और परीक्षण को वर्चुअल सर्वर जोड़ने के लिए यह सेटिंग कभी समायोजित नहीं की गई थी।

0

केवल बात यह है कि मुझ पर बाहर कूदता है आप संदेश के साथ खिड़कियों पहचान से गुजर रहे हैं, यह एक अनुमतियाँ मुद्दा का कारण बन सकता है, तो उपयोगकर्ता खाता जा रहा है पास की डब्ल्यूसीएफ सेवा तक पहुंच नहीं है। संभावित रूप से वेब ऐप पर प्रतिरूपण की आवश्यकता है?

0

डिफ़ॉल्ट रूप से, डब्ल्यूसीएफ बाइंडिंग अज्ञात (नो-ऑथ) पहुंच की अनुमति नहीं देती है। आप इसे अनुमति देने के लिए modify the bindings की जरूरत है:

<wsHttpBinding> 
    <binding ...> 
     <security mode ="None"/> 
    </binding> 
    </wsHttpBinding> 
1

मेरे मामले में, मैंने स्रोत कोड को दूसरी मशीन से कॉपी किया था और वर्चुअल निर्देशिका यहां नहीं बनाई गई थी। एक बार जब मैं प्रोजेक्ट गुणों पर गया और वर्चुअल निर्देशिका बनाई तो यह ठीक काम करता था।

0

मेरे मामले में मेरे ऐपपूल उपयोगकर्ता ने किसी कारण से 'सी: \ विंडोज \ माइक्रोसॉफ्ट.NET \ Framework64 \ v4.0.30319 \ अस्थायी एएसपी.नेट फाइल' तक पढ़ने \ लिखने की पहुंच नहीं पढ़ी थी।

0

सुनिश्चित करें कि आपके पास compilation debug="true" सेट है।

संबंधित मुद्दे

 संबंधित मुद्दे