c#
  • .net
  • vba
  • wcf
  • 2010-08-18 45 views 1 likes 
    1

    我有一個WCF web服務運行時有2個端點(mex和wsHttpBinding)。 web服務是地址:http://localhost:2412/Service1.svc,其聯繫人名爲「WcfService1.IService1」在Excel中使用Service Moniker調用WCF時收到錯誤

    我想從Excel中的VBA調用此服務。爲此,我用的是如下因素代碼:

    mexMonikerString = "service:mexAddress='http://localhost:2412/Service1.svc/mex'" 
    mexMonikerString = mexMonikerString + ", address='http://localhost:2412/Service1.svc'" 
    mexMonikerString = mexMonikerString + ", binding=WSHttpBinding_IService1" 
    mexMonikerString = mexMonikerString + ", contract=IService1" 
    
    Set service = GetObject(mexMonikerString) 
    

    當我嘗試執行此代碼我收到了如下因素的Excel錯誤消息: 運行時錯誤「-2147221020(800401e4)」

    有誰知道這個錯誤的原因是什麼以及我如何解決它?

    回答

    1

    看看Calling WCF Services from Excel VBA clients using the WCF Service Moniker。它有一個關於調試的部分,它顯示了你正在接收的錯誤代碼以及如何得到實際的錯誤描述(在這種情況下'Interface not found')。

    +0

    使用在鏈接描述的調試運行方法解決了這個問題。 WCF接口的規格有問題 – MuSTaNG 2010-08-23 11:21:37

    +0

    我現在也寫了一篇關於(調試)WCF服務和VBA代碼的文章,其中介紹了使用Visual Studio調試器http://pieterderycke.wordpress.com的替代方法/ 2010/10/05/using-a-service-moniker-to-communicate-between-legacy-com-applications-and-new-net-applications/ – MuSTaNG 2010-10-14 08:46:21

    0

    您可以嘗試在您的IIS中發佈WCF服務。

    1

    嘗試使用以下格式:)

    Dim addr As String 
    addr = "service:mexAddress=""http://localhost:2412/Service1/mex""," 
    addr = addr + "address=""http://localhost:2412/Service1.svc/""," 
    addr = addr + "contract=""IService1"", contractNamespace=""http://tempuri.org/""," 
    addr = addr + "binding=""WSHttpBinding_IService1"", bindingNamespace=""http://tempuri.org/""" 
    
    Set service = GetObject(addr) 
    
    +0

    Tnx,但我已經找到了解決方案 – MuSTaNG 2010-11-08 20:12:11

    相關問題