C# 如何使WCF服务侦听特定端口并接收HTTP请求

C# 如何使WCF服务侦听特定端口并接收HTTP请求,c#,java,wcf,httprequest,C#,Java,Wcf,Httprequest,我有一个Java应用程序,它向特定端口发送HTTP请求。这段代码是这样的: URL url = new URL("http://localhost:8080/"); HttpURLConnection httpCon = (HttpURLConnection) url.openConnection(); httpCon.setDoOutput(true); httpCon.setRequestMethod("POST");

我有一个Java应用程序,它向特定端口发送HTTP请求。这段代码是这样的:

        URL url = new URL("http://localhost:8080/");
        HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();
        httpCon.setDoOutput(true);
        httpCon.setRequestMethod("POST");
        OutputStreamWriter out = new OutputStreamWriter(
        httpCon.getOutputStream());
        System.out.println(httpCon.getResponseCode());
        System.out.println(httpCon.getResponseMessage());
        out.close();
现在,我想创建WCF服务,该服务侦听特定端口并接收从Java应用程序发送的HTTP POST请求。这可能吗?有什么指导方针可以做到这一点。我对WCF有点陌生,我已经看过了一些WCF的例子,但是我需要更多和我的问题相关的东西。那么,我应该使用什么绑定,行为


任何帮助都将不胜感激

当然可以让WCF和Java一起运行。WCF部分可能需要用C#编写代码并通过.NET实现,但Java方面非常简单

在实现这一点时,有很多示例代码可供选择,但这里有一个由三部分组成的系列,我用它来启动Java-WCF项目。在本文中,还包括来自CodeProject的另一个示例

您必须根据项目的需求确定绑定和行为。有几种绑定风格,包括HTTP、TCP和其他。行为也各不相同

这里有一个很好的单一信息源,用于比较不同的绑定类型,以及每种类型在特性和兼容性方面提供了什么


当然可以让WCF和Java一起运行。WCF部分可能需要用C#编写代码并通过.NET实现,但Java方面非常简单

在实现这一点时,有很多示例代码可供选择,但这里有一个由三部分组成的系列,我用它来启动Java-WCF项目。在本文中,还包括来自CodeProject的另一个示例

您必须根据项目的需求确定绑定和行为。有几种绑定风格,包括HTTP、TCP和其他。行为也各不相同

这里有一个很好的单一信息源,用于比较不同的绑定类型,以及每种类型在特性和兼容性方面提供了什么


当然可以让WCF和Java一起运行。WCF部分可能需要用C#编写代码并通过.NET实现,但Java方面非常简单

在实现这一点时,有很多示例代码可供选择,但这里有一个由三部分组成的系列,我用它来启动Java-WCF项目。在本文中,还包括来自CodeProject的另一个示例

您必须根据项目的需求确定绑定和行为。有几种绑定风格,包括HTTP、TCP和其他。行为也各不相同

这里有一个很好的单一信息源,用于比较不同的绑定类型,以及每种类型在特性和兼容性方面提供了什么


当然可以让WCF和Java一起运行。WCF部分可能需要用C#编写代码并通过.NET实现,但Java方面非常简单

在实现这一点时,有很多示例代码可供选择,但这里有一个由三部分组成的系列,我用它来启动Java-WCF项目。在本文中,还包括来自CodeProject的另一个示例

您必须根据项目的需求确定绑定和行为。有几种绑定风格,包括HTTP、TCP和其他。行为也各不相同

这里有一个很好的单一信息源,用于比较不同的绑定类型,以及每种类型在特性和兼容性方面提供了什么


考虑到您刚刚开始使用WCF,我建议您首先在WCF中使用basicHttpBinding,然后在学习和发现WCF技巧时对绑定进行微调。典型的basicHttpBinding如下所示

<basicHttpBinding>
        <binding name="basicClientBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:02:00"   hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
          <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
          <security mode="None"></security>
        </binding>

</basicHttpBinding> 

如果WCF使用多个绑定甚至wsHttpBinding,那么使用Axis在Java中创建WCF代理可能会很麻烦。您将发现许多类似下面的帖子,它们讨论了从Java使用复杂行为或wsHttpBinding的复杂性

您没有使用Axis或其他任何工具来创建代理,因此这对您来说非常棘手。我建议您从一个普通的WCF服务开始,使用basicHttpBinding,不使用任何行为


在编写C#服务时,也要避免使用不兼容的.Net类型,如SecureString。SecureString是建议的密码类型。但是Java world中没有等效的映射类型

考虑到您刚刚开始使用WCF,我建议您首先在WCF中使用basicHttpBinding,然后在学习和发现WCF技巧时对绑定进行微调。典型的basicHttpBinding如下所示

<basicHttpBinding>
        <binding name="basicClientBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:02:00"   hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
          <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
          <security mode="None"></security>
        </binding>

</basicHttpBinding> 

如果WCF使用多个绑定甚至wsHttpBinding,那么使用Axis在Java中创建WCF代理可能会很麻烦。您将发现许多类似下面的帖子,它们讨论了从Java使用复杂行为或wsHttpBinding的复杂性

您没有使用Axis或其他任何工具来创建代理,因此这对您来说非常棘手。我建议您从一个普通的WCF服务开始,使用basicHttpBinding,不使用任何行为


在编写C#服务时,也要避免使用不兼容的.Net类型,如SecureString。SecureString是建议的密码类型。但是Java world中没有等效的映射类型

考虑到您刚刚开始使用WCF,我建议您首先在WCF中使用basicHttpBinding,然后在学习和发现WCF技巧时对绑定进行微调。典型的basicHttpBinding如下所示

<basicHttpBinding>
        <binding name="basicClientBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:02:00"   hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
          <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
          <security mode="None"></security>
        </binding>

</basicHttpBinding> 

如果WCF使用多个绑定甚至wsHttpBinding,那么使用Axis在Java中创建WCF代理可能会很麻烦。你会发现很多类似下面的帖子