我想從Excel 2003模塊調用Web服務。 我實現它的方式是創建一個.NET COM庫,並提供所有需要公開的類/方法。 當我嘗試調用查詢從Excel Web服務的執行只是該行停止沒有任何錯誤的方法。 可能是與引用有關嗎?我正在使用Microsoft.Web.Services2.dll。我試圖把它放在C:\ WINDOWS \ SYSTEM32 - 沒有運氣從Excel調用.NET COM Web服務包裝器
謝謝!
我想從Excel 2003模塊調用Web服務。 我實現它的方式是創建一個.NET COM庫,並提供所有需要公開的類/方法。 當我嘗試調用查詢從Excel Web服務的執行只是該行停止沒有任何錯誤的方法。 可能是與引用有關嗎?我正在使用Microsoft.Web.Services2.dll。我試圖把它放在C:\ WINDOWS \ SYSTEM32 - 沒有運氣從Excel調用.NET COM Web服務包裝器
謝謝!
要解決我使用Access而不是Excel的問題。在Access中它顯示我錯誤。原來全部的基準集的位置,應該是來電顯示應用程序的位置(在這種情況下,它是C:\ Program Files文件\的Microsoft Office \ OFFICE11)。其次,我的Web服務代理正在從.config文件加載端點URL,該文件在該上下文中是C:\ Program Files \ Microsoft Office \ OFFICE11 \ MSACCESS.EXE.config
我不確定我是否得到整個圖片,但希望有一些會有所幫助。我認爲你有Excel VBA通過COM接口調用.NET,然後進入SOAP Web svc。
你應該有正確的PIA安裝和您的.NET程序集引用。你的COM接口應該是這個樣子:
[Guid("123Fooetc...")]
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface IBar
{
[DispId(1)]
void SomeMethod(Excel.Range someRange);
}
實現了一類像這樣的接口:
[Guid("345Fooetc..")]
[ClassInterface(ClassInterfaceType.None)]
[ProgId("MyNameSpace.MyClass")]
public class MyClass : IBar
{
public void SomeMethod(Excel.Range someRange)
{...}
}
我會做的第一件事情是一個真正的簡單替換您的Web服務調用方法.NET代碼,以確保您的界面和互操作包裝正在正確的。
一旦你的骨架是工作的權利,你可能要考慮使用的HTTP方法,而不是使用SOAP調用服務。例如,下面是一個使用HTTP GET的簡單調用:
string resource = yourUrl;
using (WebClient web = new WebClient())
{
web.Credentials = CredentialCache.DefaultCredentials;
someXml = web.DownloadString(resource);
}
return someXml; // or do something interesting with Excel range
任何可能丟失您正在使用的代碼的機會? – Kev 2008-10-06 02:31:14