尝试手动配置WCF主机时的预期声明 - 如何解决?

时间:2012-03-26 21:29:04

标签: wcf asp.net-4.0 manual

我正在手动创建一个WCF服务,该服务将充当DAL并创建多个项目以隔离核心功能,并希望通过MiscServices.svc访问数据,MiscServices.svc将被托管(此体系结构还将支持多个主机) )。解决方案层次结构如下(每个都是一个单独的项目):

  • 模型(实体集)
  • 服务合同(接口):IMiscContracts.cs
  • 服务库(类):MiscServices.cs:IMiscContracts
  • 主机(.svc文件):MiscServices.svc

MiscServices.svc:

<%@ ServiceHost Language="C#" Debug="true" Service="MyProject.DAL.DB1.Service.MiscServices" CodeBehind="MyProject.DAL.DB1.Service.MiscServices.cs" %>

.Contracts和.Services在包含.svc的Hosts项目中被引用。

该项目只有MiscServices.svc和web.config:

 <system.serviceModel>
    <services>
      <service name="MyProject.DAL.DB1.MiscServices">
        <endpoint name ="MiscServicesEndpoint"
                  address="MiscServices.svc"
                  binding="wsHttpBinding"
                  contract="MyProject.DAL.DB1.Contracts.IMiscContracts" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>        
      </service>
    </services>

MiscServices.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using System.ServiceModel.Web;
using MyProject.DAL.DB1.Contracts;
using MyProject.DAL.DB1.Models;


namespace MyProject.DAL.DB1.Services
{
    /// <summary>
    /// Interface implementations
    /// </summary>
    public class MiscServices : IMiscContracts
    {

        private DB1DBContext dbContext = new DB1DBContext();

        /// <summary>
        /// Returns a simple input string
        public string GetString(string someString)
        {
            return String.Format("This is your string {0}", someString);
        }
.
.
.

问题在于,当我尝试发布Hosts项目时,出现以下错误:

'If', 'ElseIf', 'Else', 'End If', 'Const', or 'Region' expected. 
Declaration expected.

...对于.svc文件中的一行,我不确定如何纠正这一点。

1 个答案:

答案 0 :(得分:0)

似乎问题出现在VS维护的项目类型中。

我删除了项目,创建了一个全新的WCF服务项目,删除了界面和类,只留下了.svc文件,它运行得很好。