我正在集成一个 Web 服务。服务在完成它的事情后要求重定向的 url 参数。
我创建了一个 WebGet 请求,例如:
myserviceUrl/redirect/someVal/someOtherVal
并将请求的 url 作为参数提供。
现在,当我将 url 输入浏览器(从 VS 作为 localhost 运行)时,我可以确认它按预期工作。但是,当从 Web 服务调用我作为参数提供的地址时,浏览器会显示一个页面,上面写着
服务 - 不允许的方法。
如果我单击地址栏并按 Enter 键(使用似乎正确的 url),它就可以工作。
这个问题的根源是什么,是域还是身份验证?我该如何解决这个问题。是否有web.config
我可以更改的设置或我应该修改的某些请求属性?
我在网上搜索了很多,但似乎找不到有效的解决方案。
编辑:基于 oshvartz 的评论)
这是我出于测试目的从服务初始化中调用的 DLL。
public static void AppInitialize()
{
ServicePostContent con = new ServicePostContent()
{
param1 = "val",
param2 = "val2",
responseUrl = "myserviceUrl/redirect/someVal/someOtherVal"
}
PostResponse res = Service.PostData(con);
}
IService1.cs:
[WebGet (UriTemplate = "redirect/{someVal}/{someOtherVal}")]
[OperationContract] void Test(string someVal, string someOtherVal);
服务1.svc:
public void Test(string someVal, string someOtherVal)
{
System.Diagnostics.Debug.WriteLine(someVal + " / " + someOtherVal);
}