2009-01-14 65 views
2

我想構建一個SharePoint Web部件,其中包含一個服務參考另一個我需要從vb代碼中調用SharePoint服務器。然而,當我嘗試調用遠程Web服務的第一次,我得到的日誌中的以下內容:使用其Web服務參考部署SharePoint WebPart


找不到,在ServiceModel客戶端配置單元參考合同「ListReference.ListsSoap」默認終結點元素。這可能是因爲沒有找到適用於您的應用程序的配置文件,或者因爲在客戶端元素中找不到匹配此合同的端點元素。在System.ServiceModel.Description.ConfigLoader.LoadChannelBehaviors(ServiceEndpoint serviceEndpoint,字符串configurationName) 在System.ServiceModel.ChannelFactory.ApplyConfiguration(字符串configurationName) 在System.ServiceModel.ChannelFactory.InitializeEndpoint(字符串configurationName,的EndpointAddress地址) 在系統。 ServiceModel.ChannelFactory 1..ctor(String endpointConfigurationName, EndpointAddress remoteAddress) at System.ServiceModel.EndpointTrait 1.CreateSimplexFactory() 在System.ServiceModel.ClientBase 1.CreateChannelFactoryRef(EndpointTrait 1 endpointTrait) 在System.ServiceModel.ClientBase 1.InitializeChannelFactoryRef() at System.ServiceModel.ClientBase 1..ctor() 在VSeWSS.ChangeRequestWorkflow.ChangeRequest.SubmitForm(對象發件人,EventArgs的)


使用服務引用部署Web部件的正確方法是什麼?我可能會做錯什麼嗎?謝謝!

回答

4

您需要將端點配置添加到使用Web服務的SharePoint網站的web.config中。

+0

它的工作對我來說,第一次,但我猜是多少的web.config文件進行復制。端點位於部分中 ... ... ...。我的SharePoint web.config沒有元素,所以我添加了向下的整個元素。 – 2010-04-16 04:03:28

0

其實我解決了我的問題。我的應用程序有很多項目,配置文件在項目中調用WebService,但它似乎必須在開始的項目...

0

嗯,如果我明白你問的問題,我正在那樣做。我只是將一個正確的端點上的Web服務添加到VS中的項目中,然後在我以實際代碼調用它之前,我從Codeplex的層次對象存儲中獲取要與此調用連接的URL,然後設置網址屬性。所以:

MyService srv = new MyService(); 
srv.Url = SPContext.Current.Web.Properties["serviceurl"]; 

它的工作就像那樣好。 hth。

+0

嗨Mezmo - 這是我不幸嘗試的第一件事:( 實際'新的服務(...)'ctor失敗,在操作中的錯誤消息:'找不到引用合同的默認端點元素...' 不幸的是,MSDN文檔也表示ClientBase需要配置值。這對我們來說是一個問題,因爲我們不想將此客戶的wsdl細節公佈給我們主要產品的其他用戶。 – 2010-04-21 15:05:06

2

我發現這個問題,解決了我的問題。 基本上,我只需要創建一個BasicHttpBinding對象,並使用我的app.config中SVC生成器生成的屬性填充它的屬性。

WCF Configuration without a config file