Web控件调用Web服务方法的NotImplementedException

时间:2014-05-14 13:32:15

标签: c# web-services wcf visual-studio-2012

我有一个Web表单,在提交时会转到Web服务并将表单数据记录在数据库中。然后它返回到Web控件,经过几次检查后,它返回到Web服务并向预先指定的电子邮件地址发送电子邮件。我已经编译了代码而没有错误,但是当我尝试执行代码时,在数据存储到数据库之后我遇到了NotImplementedException的问题,我尝试转到CreateEmail方法来启动发送的过程。电子邮件。

阅读完这些内容后:
http://msdn.microsoft.com/en-gb/library/system.notimplementedexception.aspx What does "throw new NotImplementedException();" do exactly?
Why does NotImplementedException exist?

我意识到它说我的方法尚未实现或不存在。

Visual Studio正在拾取该方法并将其显示在其intellisense中,并且该方法确实包含代码,我在下面以非常基本的简化方式包含了这些代码。

我在同一方法中设置了更高的连接,称为“服务”,我知道它正在连接到我的服务,以便将数据存储在数据库中。

我已检查过操作合同是否已到位:

[OperationContract]
string CreateEmail(string name, string address, string town, string postcode, string email, string contact); 

我有以下代码从我的网络表单转到我的服务:

if (DBresults == "0")
            {
                try
                {


                    EmailResults = service.CreateEmail(name, address, town, postcode, email, contact);
                }
                catch (NotImplementedException ex)
                {
                    service.Abort();
                }
                catch (CommunicationException ex)
                {
                    service.Abort();
                }
                catch (TimeoutException ex)
                {
                    service.Abort();
                }
                catch (Exception ex)
                {
                    service.Abort();
                    throw ex;
                }
}

然后在Web服务本身内我有以下代码(为了方便起见,我更改了名称,并删除了try的主体以便于阅读):

namespace WcfSvc{

public class WcfSvc : IWcfSvc
{

public string CreateEmail(string name, string address, string town, string postcode, string email, string contact)
    {

        string sent = "1"; 
        string fromEmail = "test@test.com";

        try
        {
            //main bit of my sent code. 
            string sent = "done"; 

            return sent; 
        }
        catch (Exception ex)
        {
            string exMessage = ex.Message;
            ex = null;
            return exMessage;
        }

    }
}
}

我试图在CreateEmail的服务中放置一个断点,但是它永远不会命中它,而是直接找到catch错误。

我哪里错了?

编辑:

我得到的异常消息是:     ex = {“方法或操作未实施。”}

1 个答案:

答案 0 :(得分:1)

验证web.config或app.config是否包含最新Web服务的正确Web地址。使用WCF测试客户端测试对Web服务的调用。验证运行服务的进程是否具有最新代码。