2015-01-13 96 views
0

所以我有這個代碼,理想情況下這個代碼不能改變。在我的測試網站上,此代碼執行正常,並將新數據發佈到數據庫中。但在現場,我得到了下面的錯誤。任何人都可以建議這可能是什麼?通過HTTP發佈XML - Webforms

protected void Button1_Click(object sender, EventArgs e) 
{ 
    WebRequest req = null; 
    WebResponse rsp = null; 
    // try 
    // { 
    string fileName = Server.MapPath("ExampleXML.xml"); 
    string uri = "http://XXX/api/index.aspx"; 

    req = WebRequest.Create(uri); 
    //req.Proxy = WebProxy.GetDefaultProxy(); // Enable if using proxy 
    req.Method = "POST";  // Post method 
    req.ContentType = "text/xml";  // content type 
    // Wrap the request stream with a text-based writer 
    StreamWriter writer = new StreamWriter(req.GetRequestStream()); 
    // Write the XML text into the stream 
    writer.WriteLine(this.GetTextFromXMLFile(fileName)); 
    writer.Close(); 
    // Send the data to the webserver 
    rsp = req.GetResponse(); 

    // } 
    // catch (WebException webEx) 
    // { 

    // } 
    // catch (Exception ex) 
    // { 

    // } 
    // finally 
    //{ 
    if (req != null) req.GetRequestStream().Close(); 
    if (rsp != null) rsp.GetResponseStream().Close(); 
    //} 
} 

直播網站上的誤差僅爲: -

Server Error in '/' Application. 

Cannot send a content-body with this verb-type. 

Line 47:   // finally 
Line 48:   //{ 
Line 49:   if (req != null) req.GetRequestStream().Close(); 
Line 50:   if (rsp != null) rsp.GetResponseStream().Close(); 
Line 51:   //} 

但我將POST請求,而這個工作對我的測試現場,只是沒有直播現場。我確保代碼被複制並存在所有文件。

這段代碼爲什麼會在一個而不是另一個上工作?

乾杯, Mike。

+0

檢查[本SO後(http://stackoverflow.com/questions/3981564/cannot-send-a-content-body-with-this-verb-type)應該回答你的問題。 – Michael

+0

http://stackoverflow.com/a/6508906/3232345 – Tascalator

+0

不幸的是,這並沒有解決問題。相同的錯誤仍然存​​在於同一個地方。 –

回答

0

對於有興趣的人來說,這裏的問題是在web.config中重寫一個URL,它被設置爲用/替換.aspx。這阻止了正在發送的XML數據並導致上述錯誤。