2009-11-28 80 views
1

我是WCF的新手,我想知道是否可以在自己的应用程序上创建WCF服务并将其托管在IIS上。然后另一个ASP.NET应用程序将使用它。到目前为止,我所见过的所有例子都在同一个ASP.NET解决方案中有WCF服务。 如果是这样,你能提供一些关于如何做的提示吗?我想创建一个简单的示例,根据id检索人姓,然后从单独的ASP.NET应用程序中使用它。WCF Web服务新手

谢谢。

回答

1

是的,你可以让它“独立” - 在Visual Studio中启动一个WCF应用程序 - 然后这个应用程序将托管在IIS中。

下面是非常基本的VS模板。

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

namespace WcfService1 
{ 
    // NOTE: If you change the class name "Service1" here, you must also update the reference to "Service1" in Web.config and in the associated .svc file. 
    public class Service1 : IService1 
    { 
     public string GetLastName(int id) 
     { 
      //Do Data Access here 
      string surname = "SomeSurname"; 
      return surname; 
     } 

     public CompositeType GetDataUsingDataContract(CompositeType composite) 
     { 
      if (composite.BoolValue) 
      { 
       composite.StringValue += "Suffix"; 
      } 
      return composite; 
     } 
    } 
} 
+0

您需要在文本编辑器中突出显示您的代码行,然后使用“代码”按钮(010 101)或按下键盘上的Ctrl-K以获得这些行格式很好的格式(并突出显示语法) – 2009-11-28 07:44:06

+0

谢谢koosk for你的榜样。开始是非常好的。 – Erica 2009-11-28 15:03:00

1

是的,绝对 - 您的WCF服务可以住在类库程序集中,并且它在IIS中托管的是花生。

另一个ASP.NET应用程序可以调用它并使用它的服务。没有问题。

至于资源:有MSDN WCF Developer Center,其中有从初学者的教程,文章和示例代码的一切。

此外,我建议你看看Pluralsight screen casts on WCF - 这是一个很好的系列,从“Creating your first WCF service”和“Creating your first WCF client”一直到相当先进的主题。 Aaron Skonnard在10-15分钟的屏幕录像中非常好地解释了所有内容 - 强烈推荐!

+0

非常感谢你们的帮助。 – Erica 2009-11-28 14:57:50

+0

我已经在看你为我链接的教程了,他们真的很棒。谢谢。 – Erica 2009-11-28 15:04:24

0

答案是肯定的(koosk和marc_s有很好的答案) - 但是这些例子的理由是值得一个简短的评论。

如果你看一下例子,你可能会看到(至少)项目,一个用于样品服务,一个用于消耗它的示例应用程序,在理论上可以拉动项目到单独的解决方案,火服务起来,然后是消费应用程序,它仍然可以工作(理论上,因为您需要将正确的依赖项放到两个项目中)。

将客户端和服务都放在同一个解决方案中的原因是因为它使视觉工作室能够更好地帮助您进行调试,当您启动客户端时,它将自动为您启动服务,然后您应该如果需要,可以从客户端步入服务。

值得记住的是,一个解决方案可以包含任意数量的理论上不同的应用程序以及支持这些应用程序所需的库等,它只是一个包装 - 应用程序(在这种情况下,服务或客户端)只是另一个项目解决方案。

+0

非常感谢您提供的信息,现在我明白了这些示例的原因是相同的解决方案。 – Erica 2009-11-28 15:01:15