我有一个C#WebService,其中有几种方法具有不同数量的参数。在每个Web方法中,我已经能够建立错误逻辑来检查期望值,但是,在URL中使用特殊字符发送到服务器的URL的情况下,我无法正确处理异常。
public class ClientGroupMgmt : System.Web.Services.WebService
{
public string readConn = ConfigurationManager.ConnectionStrings["ClientDB"].ConnectionString;
//List of Special characters
public string[] BadChars = { ">", "<", "&", "@", "#" };
[WebMethod]
public List<ClientGroupInfo> getAllClientGroupInfo()
[WebMethod]
public List<ClientGroupInfo> getClientGroupsbyClientID(string clientid)
[WebMethod]
public List<ClientGroupInfo> addClientGroup(string clientid, string clientGroupName, string prodIssueID, string intMailDistro)
if(BadChars.Any(s=>clientid.Contains(s)))
{
//Error
Error = "Special characters are not allowed.";
throw new Exception(Error);
}
我认为我应该捕获父WebService类中的URL值并对其进行编码/解码以去除特殊字符,但是我没有找到任何帮助的示例。当我在Visual Studio中调试它并使用WSDL窗口提供参数时,代码正常运行并提供对特殊字符的正确响应,但是,当它部署到服务器时,#的特殊字符被忽略并被视为URL字符的预期结束。我的另一个想法是可能监测参数的数量和误差,而不是预期的数量,但是,这在我的任何研究中都没有显示出来。
提前感谢您提供的任何帮助。 问候, 比尔