service1.asmx.cs:using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Web;
using System.Web.Services;namespace TempConvert1
{
[WebService(Namespace="http://Walkthrough/XmlWebServices/",Description="A temperature conversion service.")]
/// </summary>
public class Service1 : System.Web.Services.WebService
{
public Service1()
{
//CODEGEN:该调用是 ASP.NET Web 服务设计器所必需的
InitializeComponent();
}
[WebMethod(Description="This method converts a temperature in " +"degrees Fahrenheit to a temperature in degrees Celsius.")]
        public double ConvertTemperature(double dFahrenheit)
{
return ((dFahrenheit - 32) * 5) / 9;

#region Component Designer generated code

//Web 服务设计器所必需的
private IContainer components = null;

private void InitializeComponent()
{
} protected override void Dispose( bool disposing )
{
if(disposing && components != null)
{
components.Dispose();
}
base.Dispose(disposing);
}

#endregion
}
}
使用WEB引用的程序:
private void Button1_Click(object sender, System.EventArgs e)
{
TempConvert1.Service1 ws = new TempConvert1.Service1();
double dFahrenheit = Convert.ToDouble(TextBox1.Text);
double dCelsius = ws.ConvertTemperature(dFahrenheit);
Label1.Text = dCelsius.ToString(); }

解决方案 »

  1.   

    原来的错误我解决了,现在编译时没错,运行时抱错,错误信息是:
    请求因 HTTP 状态 401 失败:Access Denied。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Net.WebException: 请求因 HTTP 状态 401 失败:Access Denied。源错误: 
    行 35:         [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Walkthrough/XmlWebServices/ConvertTemperature", RequestNamespace="http://Walkthrough/XmlWebServices/", ResponseNamespace="http://Walkthrough/XmlWebServices/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    行 36:         public System.Double ConvertTemperature(System.Double dFahrenheit) {
    行 37:             object[] results = this.Invoke("ConvertTemperature", new object[] {
    行 38:                         dFahrenheit});
    行 39:             return ((System.Double)(results[0]));
     源文件: E:\gaoshanweb\asp.net\mywebform\Web 引用\TempConvert1\Reference.cs    行: 37 堆栈跟踪: 
    [WebException: 请求因 HTTP 状态 401 失败:Access Denied。]
       System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream) +1174
       System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) +216
       mywebform.TempConvert1.Service1.ConvertTemperature(Double dFahrenheit) in E:\gaoshanweb\asp.net\mywebform\Web 引用\TempConvert1\Reference.cs:37
       mywebform.WebForm1.Button1_Click(Object sender, EventArgs e) in e:\gaoshanweb\asp.net\mywebform\webform1.aspx.cs:54
       System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
       System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
       System.Web.UI.Page.ProcessRequestMain() +1263