2013-12-10 52 views
0

我寫了一個Web Service.asmx爲其他網站提供美元價格服務。 但當我發佈到我的網站並去測試它,我收到此異常:如何使用我的Web服務從本地machin在asp.net C#?

測試表格僅適用於來自本地機器的請求。

我在ASMX文件下的使用代碼:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Services; 

/// <summary> 
/// Summary description for Services 
/// </summary> 
[WebService(Namespace = "http://tempuri.org/")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
[System.Web.Script.Services.ScriptService] 

public class Services : System.Web.Services.WebService 
{ 

[WebMethod] 

public string USD_Prices() 
{ 
    string UnitedStateDollar; 
    using (var Entity = new DataModel.DBEntities()) 
    { 
     var UsdPrice = Entity.TblExchange.OrderByDescending(Exchange => Exchange.Id).Select(p => p.USDSell).Take(1).ToList(); 
     UnitedStateDollar = UsdPrice[0].ToString(); 
    } 
    return UnitedStateDollar; 
} 

}

所以,問題是什麼....如果你想在網上查詢它的地址是:?

http://www.nerkhyab.ir/services.asmx

+1

如何創建測試客戶端並將您的服務添加爲參考? – scheien

+1

@amin請仔細閱讀http://support.microsoft.com/kb/819267 –

+1

@SurajSingh謝謝我的朋友.....你的參考文獻解決了這個問題 – amin

回答

1

將此添加到您的Web配置中。

<configuration> 
    <system.web> 
    <webServices> 
     <protocols> 
      <add name="HttpGet"/> 
      <add name="HttpPost"/> 
     </protocols> 
    </webServices> 
    </system.web> 
</configuration> 

檢查Herehere

+0

這不是'由於安全原因(該表單只在本地機器上工作)完成。這是因爲真實世界的Web服務具有無法通過簡單表單處理的複雜參數 –

+0

@PanagiotisKanavos感謝您的信息! –

+0

所以幫助我,我該怎麼做,請糾正它? – amin

0

有沒有問題。 Web服務沒有表單。爲了使用.NET的Web服務,您添加了作爲服務引用並從客戶端代碼中調用它們。

舊式的ASMX服務有一種表單,您可以將其用於演示目的,您可以輸入一些簡單的值並調用POST從服務中獲取結果。這在WCF服務中被刪除,因爲真實世界的Web服務具有複雜的參數,無法通過簡單的表單處理。

創建WCF服務而不是ASMX服務會好得多。 WCF服務更符合規範,性能,靈活,可擴展(等等)。

在任何情況下,您都可以通過向您的項目添加服務引用來調用其他客戶的服務。這將創建一個代理類,將服務的參數作爲對象和端點公開爲客戶端對象上的方法。

+0

好吧......但是如何回合PHP? 還有另一個PHP網站想用我的網站web服務來收取美元的價格...正如我所說的請 – amin

+0

你錯了我的朋友....第一個答案戰爭糾正並解決了我的問題 – amin

相關問題