ViewPager
我在IIS中托管了一个WCF服务,上面有示例服务合同。服务web.config文件设置如下。
完整的WCF Web.config文件
onCreate()
我正在尝试以编程方式访问该服务,如下所示。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//other initialization code
getData();
//remaining code
}
protected DataWrapper dataWrapper;
private void getData(){
try {
//url for fetching data
String url = "http://....."
new FetchAndPopulateMarketDataAsyncTask(this){
@Override public void onPostExecute(DataWrapper result)
{
if(result==null){
//server or no internet error
}
else{
dataWrapper = (DataWrapper)result;
}
}
}.execute(new URL(url));
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
以上代码抛出错误
在ServiceModel客户端配置部分找不到名为“notSecureBinding”的端点元素并签署“ADSearcher.IService1”。这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此名称匹配的端点元素
我似乎无法弄清楚我在这里做错了什么,或者有更好的替代方案以编程方式访问此服务?
答案 0 :(得分:1)
在您的端点中,您指定的是Data.GetData
类型的合同。合同的类型为IService1
,默认情况下,合同名称应为服务接口的类型名称。
如果您确实希望将IService
称为Data.GetData
,则可以通过ServiceContractAttribute
指定识别名称:
[ServiceContract(ConfigurationName = "Data.GetData")]
public interface IService1
{
[OperationContract]
DataTable GetADUserList(string strUserName, string strFirstName, string strLastName, string strEmail, string domain);
}
答案 1 :(得分:0)
找不到名为'customBinding'....的端点元素 ServiceModel客户端配置部分
这是因为您在配置文件中定义了两个客户端端点。他们被命名为:
因此错误消息是正确的,没有名称为“customBinding”的endpoint元素。
我认为你需要这样做:
IService1 ADUser = new ChannelFactory<IService1>("<either of the two bindings you defined>").CreateChannel();
我是否需要在ASP.NET MVC中配置与WCF相关的任何内容 应用程序的web.config文件?
好的,现在我明白了。您正在ASP.NET网站中托管WCF服务。你试图从我认为的其他地方调用它吗?
您肯定需要在web.config中定义<system.serviceModel />
部分,该部分将告诉IIS如何托管您的服务。
目前,您在上面发布的配置定义了客户端端点。这些不是引用服务端点,而是客户端配置,旨在允许您调用服务。提示位于节节点的名称中:<client />
。要定义您希望公开的服务端点,您需要将端点配置放在<service />
部分中。在您的情况下,可能只需要将“客户”更改为“服务”以使其全部工作。
调用该服务的代码可能需要也可能不需要app.config文件中的客户端配置。你说你是以编程方式调用它(虽然没有看到你的完整客户端代码我不知道你做得足以满足WCF客户端调用堆栈),在这种情况下你不需要客户端配置。我希望这能让你更清楚。