调用Webservice,参数值等于1

时间:2014-02-25 08:55:58

标签: c# web-services webmethod

我对webservices有一个奇怪的问题。 如下WebMethod

public string GenerateUrl(string webserviceId,string webmethodId, string versionId)
{
    return @"C:\" + webserviceId + @"\" + webmethodId + @"\Versions\V" + versionId + ".txt";
}

如果我使用以下参数调用它:

GenerateUrl("ws","wm","1");

它返回C:\\ Versions \ V1.txt

但如果我传递versionId"1"之外的任何其他值

GenerateUrl("ws","wm","2");

它正常工作并返回C:\ ws \ wm \ Versions \ V2.txt!

1 个答案:

答案 0 :(得分:0)

为了测试案例,我使用控制台应用程序作为测试项目尝试了以下操作:

public static string GenerateUrl(string webserviceId, string webmethodId, string versionId)
{
    return @"C:\" + webserviceId + @"\" + webmethodId + @"\Versions\V" + versionId + ".txt";
}

并将其称为如下:

Console.WriteLine(GenerateUrl("ws", "wm", "1"));            
Console.WriteLine(GenerateUrl("ws", "wm", "2"));            
Console.WriteLine(GenerateUrl("ws", "wm", "3"));

正如所料,结果(从控制台输出中复制)是:

  

C:\ ws \ wm \ Versions \ V1.txt

     

C:\ WS \ WM \版本\ V2.txt

     

C:\ WS \ WM \版本\ V3.txt

在这种情况下,我最后的想法是方法GenerateUrl()工作正常,它的调用方式一定存在问题。为了看到我建议你在每次调用方法时放置一个断点并检查参数(观察)webserviceIdwebmethodId。您可能会将值视为string.Empty""。在执行return语句之前,您可以操作 versionId参数的值,将其设置为1并查看它是否会中断