在我的自我託管的Web服務,我有一臺服務器的方法來接收上傳的圖片:C#自託管的Web服務:不容上傳文件大於60K
[System.ServiceModel.OperationContract, WebInvoke(UriTemplate = "MalaDireta/saveImage")]
string MD_saveImage(Stream arq);
public string MD_saveImage(Stream img) {
try {
Image i = Image.FromStream(img);
//Here I just show received image in a PictureBox
new ImageTest(i).ShowDialog();
}
catch (Exception ex) {
MessageBox.Show("Exception:\n" + ex.ToString());
}
return "test";
}
用以下App.config文件:
<?xml version="1.0"?>
<configuration>
<system.serviceModel>
<bindings>
</bindings>
<services>
<service name="WebService.RestService" behaviorConfiguration="Default">
<host>
<baseAddresses>
</baseAddresses>
</host>
<endpoint address="" binding="webHttpBinding" behaviorConfiguration="webBehavior" contract="WebService.ICarga"></endpoint>
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="webBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="Default">
<serviceMetadata httpGetEnabled="true"/>
<dataContractSerializer maxItemsInObjectGraph="2147483647"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>
以及上傳圖像(客戶沒有App.config中)以下客戶端的方法:
Image img = Image.FromFile("fileName");
MemoryStream ms = new MemoryStream();
img.Save(ms, ImageFormat.Png);
Uri uri = new Uri("http://m.y.i.p:port/MalaDireta/saveImage");
WebClient client = new WebClient();
ms.Position = 0;
try {
client.UploadData(uri, ms.ToArray());
}
catch (Exception exc) {
MessageBox.Show("Error at insertion.\n Exception: " + exc.ToString());
}
而這每工作只要圖像尺寸不大於60k,就會受到影響。否則,我會收到「錯誤400:錯誤的請求」,在這種情況下,服務器方法甚至不會啓動(我在方法開始時嘗試使用MessageBox)。我試圖改變服務器App.Config中的一些東西,但沒有運氣(可能是由於我對配置文件缺乏瞭解)。 任何人都可以請告訴我如何能夠上傳大文件?
在此先感謝。
這應該做的伎倆這個例子是WCF,但必須有你試圖完成什麼simliar約束力。 http://stackoverflow.com/questions/884235/wcf-how-to-increase-message-size-quota – vikingben
謝謝,@vikingben。但仍然給我同樣的錯誤。 – user1531978
另一件我會扔在那裏。我有一個類似的問題,我在一個wcf web服務上傳圖片時遇到了類似的問題,並且在我發現錯誤不在Web服務端上的一個星期之前,但我必須更改客戶端應用程序上的配置。也許值得一試。我在綁定的app.config中使用了相同的max消息。祝你好運。 – vikingben