标签: wcf

WCF服务与流响应

我有一个WCF服务,其中一个方法返回Stream.现在的问题是当我尝试使用Stream对象时,我是否尝试通过网络使用流或者客户端已经收到了自己的整个流?

如果我使用RESTful而不是WCF,它会有什么不同吗?

wcf stream

0
推荐指数
1
解决办法
2621
查看次数

如何以编程方式在托管服务上设置服务主体名称

要使用配置文件执行上述操作,我会这样做:

<endpoint
  address="...."
  binding="netTcpBinding"
  bindingConfiguration="MyBinding"
  contract="IService1">
  <identity>
    <servicePrincipalName value="name"/>
  </identity>
</endpoint>
Run Code Online (Sandbox Code Playgroud)

但是如何将其添加到下面的代码中?

Uri uri = new Uri("http://example.com/service");
ServiceHost host = new ServiceHost(typeof(Service1), uri);

NetTcpBinding binding = new NetTcpBinding();
binding.Security.Mode = SecurityMode.Message;
binding.Security.Message.ClientCredentialType = MessageCredentialType.Windows;
host.AddServiceEndpoint(typeof(IService1), binding, uri);
host.Open();
Run Code Online (Sandbox Code Playgroud)

.net c# wcf wcf-client wcf-configuration

0
推荐指数
1
解决办法
3884
查看次数

枚举和WCF - 有意义的错误?

我正在尝试克服WCF和枚举的问题,我正在尝试将对象从服务器传递到包含枚举的客户端(或其他服务器).枚举以1开头,故意.枚举初始化时以及在其中定义值时,一切都很顺利,但是当它未在枚举中定义时,我得到了这个非常好的(并且非常具有描述性(...))错误消息:

"底层连接已关闭:连接意外关闭."

我试图实现的是当我得到这个场景时,无论是从数据库中的损坏数据(无论如何都被转换为枚举,这是非常奇怪的),或者当开发人员忘记在启动对象时设置枚举值时,要获得有意义的消息,例如"枚举值无效,请键入:{0},值:{1}".

我试图在类的枚举和getter中使用"Enum.IsDefined",并将有意义的异常抛给客户端(或其他服务器),但仍然出现"连接关闭"错误(当允许调试服务器我得到了有意义的消息,但仅在服务器端).

这是enum setter和getter的片段:

    private TestEnum m_TestEnum;

    [DataMember]
    public TestEnum TestEnum 
    {
        get
        {
            if (Enum.IsDefined(typeof(TestEnum), m_TestEnum))
            {
                return m_TestEnum;
            }
            else
            {
                throw new ApplicationException("Enum value is not valid: " + m_TestEnum);
            }
        }
        set
        {
            if (Enum.IsDefined(typeof(TestEnum), value))
            {
                m_TestEnum = value;
            }
            else
            {
                throw new ApplicationException("Enum value is not valid: " + value);
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

从0开始枚举(带有"未知"值)不够好,因为我仍然可以获得枚举中不存在的值.我可以结合两种解决方案,我检查"IsDefined"并将枚举设置为"未知"值,但仍然 - 这不是理想的解决方案,因为我们想知道这些情况,以便在开发周期中解决它们.

你说什么?谢谢,Nir.

.net wcf enums

0
推荐指数
1
解决办法
3293
查看次数

获取通过WCF拨打电话的客户端的主机名?

有没有办法获取cleint的主机名在WCF中调用net.tcp绑定.我正在尝试诊断一个问题,我想找出哪个客户端正在向我发送导致它的消息.

我试过了:

OperationContext.Current.Channel.RemoteAddress.Uri.AbsoluteUri
Run Code Online (Sandbox Code Playgroud)

但这似乎只给我一个通用架构而不是主机名/ IP地址.

.net c# wcf

0
推荐指数
1
解决办法
3295
查看次数

在一个Windows服务下托管的多个服务

我有两个服务,名为TemplateService,TemplateReportService(都在一个WCF服务库中定义)将公开给客户端应用程序.

是否可以在一个Windows服务下托管这两个服务?

谢谢!

service wcf host

0
推荐指数
1
解决办法
584
查看次数

无法从'List <T>'转换为'T []'

我试图将类型的列表对象传递给List<UploadQueue>相同参数类型的WCF SOAP方法,我收到错误:

无法从'System.Collections.Generic.List'转换为'WebAPI.Upload.UploadQueue []'

我不明白这一点,因为我的WCF方法(下面)参数类型是List<UploadQueue>:

IService.DoUpload(List<UploadQueue> request)
Run Code Online (Sandbox Code Playgroud)

这是调用"DoUpload"的代码,它返回上述错误.

    List<UploadQueue> results = new List<UploadQueue>();
    HttpPostedFile m_objFile  = default(HttpPostedFile);
    int m_objFlag = default(int);
    Guid m_objGuid = Guid.NewGuid();
    DateTime m_objDate = DateTime.Now;

    try
    {
        if (Request.Files.Count > 0)
        {
            for (var j = 0; i <= (Request.Files.Count - 1); j++)
            {
                m_objFile = Request.Files[j];

                if (!(m_objFile == null | string.IsNullOrEmpty(m_objFile.FileName) | m_objFile.ContentLength < 1))
                {
                    results.Add(new UploadQueue(
                        m_objGuid,
                        m_objFlag,
                        m_objFile.ContentLength,
                        m_objFile.FileName,
                        m_objDate)
                    );

                }

            }
        }

    }
    catch (Exception …
Run Code Online (Sandbox Code Playgroud)

c# generics wcf list

0
推荐指数
1
解决办法
2141
查看次数

Window Presentation Foundation和WCF之间有什么区别?哪个更新?

那么哪一个是新的,为什么我会使用一个而不是另一个.或者更重要的是,通过Windows窗体?

c# wpf wcf winforms

0
推荐指数
1
解决办法
7426
查看次数

架构问题 - 直接调用远程SQL Server还是通过服务调用?

在我的新WPF/silverlight应用程序中,最好是直接连接到我的远程SQL Server(我使用linq到sql),还是调用WCF服务并让服务连接到数据库更好?

SQL Server和Win2k8 Web服务器都是租用的,位于同一位置.如果创建WCF服务,我会在Web服务器上运行它并连接到隔壁的数据库.我不关心重用这项服务的能力,但我关心的是性能.最好是直接从我的客户端进行SQL调用,还是调用服务并让服务进行调用.

sql-server wpf wcf web-services

0
推荐指数
2
解决办法
552
查看次数

通过NHibernate和WCF保留子项删除

我们希望在我们的WCF服务后面使用NHibernate,但是我们在将子记录删除持久保存到数据库时遇到问题.

我们在服务和客户端之间使用DTO,它们具有IList <>作为子集合类型.当我们使用NHibernate填充DTO时,它将子集合设置为Bag的类型.但是,当通过线路发送时,WCF会将此集合类型更改为Array.

如果我们从数组中删除一条记录并将其传回服务,NHibernate将不会将删除持久保存到数据库中.

有没有我们可以告诉NHibernate(在映射?)删除数组中不存在的任何子记录?

nhibernate wcf

0
推荐指数
1
解决办法
347
查看次数

WCF basicHttpBinding使用用户名和密码进行身份验证,就像在ASMX Web服务中一样

我正在IIS中使用basicHttpBinding实现wcf web服务托管,这些应该可以通过.net 2.0客户端访问,如访问ASMX服务.

任何机构都可以提供详细信息,并提供一些示例/示例代码.

谢谢

wcf

0
推荐指数
1
解决办法
1933
查看次数