C# Localhost-打开时为空白页

C# Localhost-打开时为空白页,c#,wcf,localhost,C#,Wcf,Localhost,我按照MSDN创建WCF服务,当我运行它时,它已正确启动,但当我按照localhost创建时,服务器为空 我能做什么 我正在使用Chrome,我已经改变了很多帖子中建议的设置 ICalculator.cs using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.Text

我按照MSDN创建WCF服务,当我运行它时,它已正确启动,但当我按照localhost创建时,服务器为空

我能做什么

我正在使用Chrome,我已经改变了很多帖子中建议的设置

ICalculator.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

namespace GettingStartedLib
{
   [ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples")]
    public interface ICalculator
    {
       [OperationContract]
       double Add(double n1, double n2);
       [OperationContract]
       double Substract(double n1, double n2);
       [OperationContract]
       double Multiply(double n1, double n2);
       [OperationContract]
       double Divide(double n1, double n2);
    }  
}
计算器服务

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

namespace GettingStartedLib
{
    public class CalculatorService:ICalculator
    {
        public double Add(double n1, double n2)
        {
            double result = n1 + n2;
            Console.WriteLine("Otrzymano: Add({0},{1})", n1, n2);
            Console.WriteLine("Wynik: {0}", result);
            return result;
        }

        public double Substract(double n1, double n2)
        {
            double result = n1 - n2;
            Console.WriteLine("Otrzymano: Substract({0},{1})", n1, n2);
            Console.WriteLine("Wynik: {0}", result);
            return result;
        }

        public double Multiply(double n1, double n2)
        {
            double result = n1 * n2;
            Console.WriteLine("Otrzymano: Multiply({0},{1})", n1, n2);
            Console.WriteLine("Wynik: {0}", result);
            return result;
        }

        public double Divide(double n1, double n2)
        {
            double result = n1 / n2;
            Console.WriteLine("Otrzymano: Divide({0},{1})", n1, n2);
            Console.WriteLine("Wynik: {0}", result);
            return result;
        }
    }
}
主机:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ServiceModel;
using System.ServiceModel.Description;
using GettingStartedLib;

namespace GettingStartedHost
{
    class Program
    {
        static void Main(string[] args)
        {
            //Krok 1: utworzenie URI, które będzie służyło jako adres bazowy
            Uri uri = new Uri("http://localhost:8000/GettingStarted/");


            //Krok 2: utworzenie instancji obiektu ServiceHost (hosta serwera)
            ServiceHost selfHost = new ServiceHost(typeof(CalculatorService), uri);


            try
            {
               //Krok 3: dodanie punktu końcowego serwera
            selfHost.AddServiceEndpoint(typeof(ICalculator), new WSHttpBinding(), "CalculatorService");

                //Krok 4: umożliwienie wymiany metadanych
                ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
                smb.HttpGetEnabled = true;              
                selfHost.Description.Behaviors.Add(smb);

                //Krok 5: uruchomienie hosta serwera
                selfHost.Open();
                Console.WriteLine("Serwer jest gotowy!");
                Console.WriteLine("Naciśnij <ENTER>, by go zamknąć.");
                Console.WriteLine();
                Console.ReadLine();

                //zamknięcie obiektu ServiceHost w celu zamknięcia serwera
                selfHost.Close();

            }
            catch (CommunicationException e)
            {
                Console.WriteLine("Wystąpił wyjątek: {0}",e.Message);
                selfHost.Abort();
            }
        }
    }
}
事情是这样的

<add baseAddress = "http://localhost:8000/GettingStarted/CalculatorService/" />


但是有人能告诉我为什么我的编程方法不起作用吗?我的意思是,如果我更改*.config文件中的地址(或默认情况下不更改地址),它将无法工作(所述链接-尽管服务器正常启动)

尝试将localhost更改为实际的计算机名或IP。我的WCF服务也遇到了类似的问题

该服务没有任何迹象表明它将返回网页。它是一个执行操作的服务web服务

使用位于
{Visual Studio安装目录}\Common7\IDE\WcfTestClient.exe
的WCF测试客户端对其进行测试。运行后,选择添加服务,并在对话框中输入
http://localhost:8000/GettingStarted/CalculatorService.svc

如果它在没有错误消息的情况下工作,它将显示接口定义,如下面的我的定义:


然后,在应用程序中,您可以测试不同的方法,例如在您的案例中添加,然后调用操作。

您想在使用资源管理器打开操作时更改它吗?如果是的,那么我这样做了,但仍然是相同的(InternetExplorer抛出http错误400),它给了我错误,但是你能读我的“Edit2”吗?也许你会知道为什么会这样?WCFTestClient总是给我一个错误。。
<add baseAddress = "http://localhost:8000/GettingStarted/CalculatorService" />
<add baseAddress = "http://localhost:8000/GettingStarted/CalculatorService/" />