我有一個簡單的WCF服務,它在指定爲param的位置創建一個目錄。 該服務作爲Windows服務託管,並以管理員帳戶運行。在WCF中實現排隊
InstanceContextMode是單一的,併發性也是如此。
該方法創建後返回目錄位置的字符串。
客戶端正在使用ASP.NET從另一臺計算機訪問此服務。 他有一個用例,他在幾秒鐘內多次點擊頁面上的按鈕,例如在2秒內點擊5次。發生什麼事是該服務創建只有2或3個文件夾不是全部5.
我知道有一個默認的排隊機制在WCF和我的服務它要麼不工作,或者我沒有寫它使用該機制。
我該如何解決這個問題。
下面是按鈕的ASP.NET代碼點擊
protected void Button1_Click(object sender, EventArgs e)
{
ClientClass objClientClass = new ClientClass();
string returnValue = string.Empty;
Random random = new Random();
string uid = random.Next().ToString();
returnValue = objClientClass.StartWorkflow(uid);
Label1.Text = returnValue;
}
這裏的主機的app.config:
<configuration>
<system.diagnostics>
<sources>
<source name="System.ServiceModel"
switchValue="All"
propagateActivity="true">
<listeners>
<add name="traceListener" />
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging"
switchValue="All"
propagateActivity="true">
<listeners>
<add name="traceListener" />
</listeners>
</source>
</sources>
<sharedListeners>
<add name="traceListener"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="Traces.svclog" />
</sharedListeners>
</system.diagnostics>
<system.web>
<compilation debug="true"></compilation>
</system.web>
<system.serviceModel>
<diagnostics>
<messageLogging logEntireMessage="true"
logMessagesAtServiceLevel="false"
logMessagesAtTransportLevel="false"
logMalformedMessages="true"
maxMessagesToLog="5000"
maxSizeOfMessageToLog="2000">
</messageLogging>
</diagnostics>
<behaviors>
<serviceBehaviors>
<behavior name="NewBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceThrottling maxConcurrentCalls="1" maxConcurrentSessions="5" maxConcurrentInstances="5" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="NewBehavior" name="Utilities.WS.SampleWebService.Jobs">
<endpoint address="" binding="basicHttpBinding" bindingConfiguration=""
contract="Utilities.WS.SampleWebService.IJobs" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
<host>
<baseAddresses>
<add baseAddress="http://00.00.000.00:8732/Utilities.WS.SampleWebService.Jobs" />
</baseAddresses>
</host>
</service>
</services>
</system.serviceModel>
</configuration>
問候。
啓用您的服務跟蹤,看看有多少信息沒有您的服務收到。那麼你會明白,天氣問題是在你的asp端或WCF端 – Alex
嗨@voo,我啓用了跟蹤。 svcLog顯示該服務從5次點擊中只收到3次請求,我可以看到3次請求的結果。那麼餘下的2發生了什麼? – Codehelp
在我看來,這個問題並不在你的服務中。它可以在你的Button1_Click處理程序中嗎?我的意思是你可以點擊5次,但它只會觸發3次。並嘗試更改您的限制中的MaxConcurrentCalls(當前正在執行的服務的調用次數) – Alex