我正在尝试在我的网站页面上的一个WebMethods中定义一个if语句,以检查University Offer字段的值是否为null,如果该值为null,则该方法按预期执行。如果该值不为null,那么我希望它返回错误消息。
麻烦的是我似乎遇到了两个问题。
我在else条件中放入什么来表示将此值保存到此字段时出错?我试过返回但是我的方法有一个返回类型的void,这使得返回过程很难实现。
当我执行我的代码并在我的服务器上测试时,尝试访问该特定方法时会返回一条消息,指示 “测试表单仅适用于来自本地计算机的请求。
这是我到目前为止能够定义的方法的代码。
[WebMethod]
public void EditNAA_ApplicationOffer(NAA_Applications App, int ApplicationId, string UniversityOffer)
{
NAA_Applications _EditAO = _NAAService.Get_Applicant_Application(ApplicationId);
if (_EditAO.UniversityOffer == null)
{
_NAAService.EditNAA_ApplicationOffer(ApplicationId, UniversityOffer);
}
else
{
}
}
任何人都可以帮我解决这两个问题吗?
答案 0 :(得分:1)
- 我在else条件中添加什么来表示将此值保存到此字段时出错?
醇>
您可以通过抛出SoapException
:
if (_EditAO.UniversityOffer == null)
{
_NAAService.EditNAA_ApplicationOffer(ApplicationId, UniversityOffer);
}
else
{
throw new SoapException("Some error has occurred", SoapException.ClientFaultCode);
}
在这种情况下,在客户端上,您将收到HTTP错误500,并提供错误消息。
- 当我执行我的代码并在我的服务器上测试它时,尝试访问该特定方法会返回一条消息,指示“测试 表单仅适用于本地计算机的请求。
醇>
默认设置不允许通过远程主机的测试表调用服务。如果您允许任何人使用您的服务,那么您应该在您的web.config中添加以下<webServices>
部分(取自this answer):
<configuration>
<system.web>
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
</system.web>
</configuration>