2013-05-20 150 views
4

我有一些wcf web服務,我託管在本地主機上的IIS。 我希望能夠從Unity3d訪問它們,但我得到以下錯誤,當我播放的場景:從unity3D消費WCF

InvalidOperationException: Client endpoint configuration 'BasicHTTPEndpoint' was not found in 0 endpoints. 
System.ServiceModel.ChannelFactory.ApplyConfiguration (System.String endpointConfig) 
System.ServiceModel.ChannelFactory.InitializeEndpoint (System.String endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) 
System.ServiceModel.ChannelFactory`1[IUnityStore]..ctor (System.String endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) 
System.ServiceModel.ClientBase`1[TChannel].Initialize (System.ServiceModel.InstanceContext instance, System.String endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) 
System.ServiceModel.ClientBase`1[TChannel]..ctor (System.ServiceModel.InstanceContext instance, System.String endpointConfigurationName) 
System.ServiceModel.ClientBase`1[TChannel]..ctor (System.String endpointConfigurationName) 
UnityStoreClient..ctor (System.String endpointConfigurationName) 
firstCall.Start() (at Assets/Scripts/firstCall.cs:8) 

的web服務實例,如:

UnityStoreClient uc = new UnityStoreClient("BasicHTTPEndpoint"); 
uc.Open(); //i don't know if i need this ????? 
UnityStoreLibrary.User[] users = uc.GetAllUsers("1",null); 
for (int i=0;i<users.Length;i++) 
    Debug.Log("username = " + users[i].username); 

我有一個配置文件我腳本文件夾,但我不知道我是否應該使用它。我使用Visual Studio 2010中的svcutil創建了統一類。

回答

6

using System.ServiceModel;

此聲明在我的課程實施中缺失。

我這樣調用web服務:

UnityStoreClient client = new UnityStoreClient(new BasicHttpBinding(), new EndpointAddress(some_url)); 
0

實際上,異常消息爲您提供了有關遺漏的提示。

ConfigurationManager在web.config文件的部分中找不到與WCF服務相關的任何詳細信息。

有關正在調用的WCF服務的詳細信息應存儲在web.config文件中。應該有這樣的一個終結點定義在你的web.config文件:

<system.serviceModel> 
<client> 
    <endpoint name="BasicHTTPEndpoint" 
     address="http://myUnits3DService.svc" 
     binding="basicHttpBinding" 
     contract="IService"/> 
... 

也許你還應該檢查有關使用svcutil.exe的從here細節。

+0

我應該在哪裏把這個web.config文件? –

+0

它應該放在與您進行web服務調用的程序集相同的目錄中。 –

+0

我用'svcutil'生成的類在Scripts \ ClientProxies中。我也有一些DLL的插件目錄:System.Runtime.Serialization,System.Security,System.ServiceModel。彙編目錄在哪裏?我的配置文件被稱爲web.config。 –