WebService和Remoting之间的区别

我将Web服务与Remoting从性能和互操作性角度进行了比较,并对此有所怀疑。 1)由于Remoting支持TCP和HTTP通道,因此在使用TCP通道时它使用二进制格式化,当HTTP,SOAP格式化时 2)我们可以在Remoting中使用TCP协议和HTTP / Soap格式化使用二进制格式化 3)由于Remoting支持任何技术和平台普遍接受的XML / SOAP格式,因此它应该提供任何技术/平台的服务器/客户端应用程序之间的互操作性,如果提供什么是Web服务的使用。 据我所知,Webservice相对于远程处理的主要优点是互操作性。 4)如果我使用Remoting与SOAP和HTTP,它是否被互联网防火墙绕过与Web服务相同的方式,或者仍然受到防火墙的限制。 5)如果在HTTP上使用SOAP格式进行远程处理,而在Web服务上使用SOAP格式通过Http进行远程处理,是否仍存在任何性能变化。 6)webservice是否支持二进制格式化和TCP协议,根据我的理解webservice只支持http prtocol但是根据一些程序员的意见,堆栈溢出webservice独立于传输协议,所以它是否像asp.net webservice只适用于http和web服务在其他技术中开发的支持TCP和HTTP。 此致,Arun Patil

从UDP连接获取客户端IP C#

我目前有一个服务器应用程序正在侦听UDP数据包的端口。 当一个发送到服务器时,它会正确接收并处理它。 有什么方法可以获取数据包来自哪里的IP地址? 这是我创建套接字的方法 this.UDPListener = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); IPEndPoint endPoint = new IPEndPoint(IPAddress.Any, Port); this.UDPListener.Bind(endPoint); SocketAsyncEventArgs socketEventArgs = new SocketAsyncEventArgs(); socketEventArgs.SetBuffer(this.ReceiveBuffer, 0, this.ReceiveBuffer.Length); socketEventArgs.Completed += new EventHandler(OnReceive); if (!this.UDPListener.ReceiveAsync(socketEventArgs)) ThreadPool.QueueUserWorkItem(new WaitCallback((Object o) => this.OnReceive(this, socketEventArgs))); 当调用OnReceive时,没有任何内容包含消息来自的ip。 我已经查看了SocketAsyncEventArgs,我看到的只是监听ip。 编辑: 这就是我最终做的事情。 this.UDPListener = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); this.UDPListener.Bind(new IPEndPoint(IPAddress.Any, Port)); EndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, […]

强制回发Asp.Net

请看下面的点击事件…… 受保护的子btnDownloadEmpl_Click(ByVal sender As Object,ByVal e As System.EventArgs)处理btnDownloadEmpl.Click Dim emplTable As DataTable = SiteAccess.DownloadEmployee_H() Dim d As String =格式(Date.Now,“d”) Dim ad()As String = d.Split(“/”) Dim fd As String = ad(0)&ad(1) Dim fn As String =“E_”&fd&“。csv” Response.ContentType =“text / csv” Response.AddHeader(“Content-Disposition”,“attachment; filename =”&fn) CreateCSVFile(emplTable,Response.Output) Response.Flush() 到Response.End() lblEmpl.Visible = True 结束子 此代码只是将数据从数据表导出到csv文件。 这里的问题是lblEmpl.Visible = true永远不会被命中,因为这段代码不会导致回发到服务器。 即使我在click事件的顶部放置代码行lblEmpl.Visible = […]

南希文档中描述的表单身份validation是否容易受到会话劫持的影响?

我阅读了Nancy Forms Authentication的文档。 据我所知,那里推荐的方法会导致终身会话ID: “标识符是将放入身份validationcookie的令牌,用于重新建立执行请求的用户的身份,因此您无需为每个请求输入凭据。” 据我所知,“标识符”是大多数人称之为会话ID的内容。 同样重要的是要知道标识符应被视为为其生成的用户的永久标识符,并将在请求和应用程序会话中重用。 这真的是推荐的方法吗? 如果我理解正确,这意味着会话ID永远不会改变,永远不会过期。 因此会话ID相当于密码 每次请求都会在cookie中重新传输 如果您按照文档结束,可能会以明文forms存储在数据库中 我知道我可以与南希不同地实现这一点,但我的观点是,这种方法不应该在文档中作为参考来解释。 因此,如果攻击者成功窃取了该会话ID,例如通过XSS攻击,他就可以终身访问系统。 请纠正我,并告诉我我的想法中的错误!

从Java调用C#dll方法

有没有人知道我试图从我的Java代码中的C#dll调用方法有什么问题? 这是我的例子: Java代码: public class CsDllHandler { public interface IKeywordRun extends Library { public String KeywordRun(String action, String xpath, String inputData, String verifyData); } private static IKeywordRun jnaInstance = null; public void runDllMethod(String action, String xpath, String inputData, String verifyData) { NativeLibrary.addSearchPath(${projectDllName}, “${projectPath}/bin/x64/Debug”); jnaInstance = (IKeywordRun) Native.loadLibrary( ${projectDllName}, IKeywordRun.class); String csResult = jnaInstance.KeywordRun(action, xpath, inputData, […]

NHibernate COALESCE问题

我试图用NHibernate表达以下SQL查询 DECLARE @date DATETIME = NULL; SELECT ER.Id , ER.DocumentDate FROM ExpenseReport ER WHERE ER.PeriodFrom >= COALESCE(@date, ER.PeriodFrom) OR ER.PeriodTo <= COALESCE(@date, ER.PeriodTo); 所以,在C#部分,我确实有以下类: 对于实体:ExpenseReport 对于我的搜索本身是一个单独的类 代码片段: // —– Entity class. public partial class ExpenseReport { public Nullable PeriodFrom { get; set; } // many other properties } // —– Search parameter class. public class […]

tabControl / tabitem刷新困难

我有一个带有maintabWindow的WPF窗口和几个tabitems。 它通常工作正常,布局是这样的: 但是当我在添加以下窗口时: 结果是这样的: 所以问题与tabControl / tabItem刷新有关。 这是相当明显的,但更多的是因为如果我移动窗口或使用鼠标在tabItem上传递它们会逐个刷新。 我搜索并发现这是一个解决方案: http : //geekswithblogs.net/NewThingsILearned/archive/2008/08/25/refresh–update-wpf-controls.aspx 所以我补充说: this.MainTab.Refresh(); this.tabItem1.Refresh(); this.tabItem2.Refresh(); this.tabItem3.Refresh(); this.tabItem4.Refresh(); this.tabItem5.Refresh(); 但这并没有改变一件事。 Thanx任何帮助

C#/ ODP.NET:大型IN子句解决方法

我们有一个C#组件,它处理将任意大小的元素列表附加到用于半任意SQL SELECT查询的IN子句中。 从本质上讲,这归结为接收如下内容: SELECT COUNT(*) FROM a WHERE b IN (…) …其中“…”是允许组件修改的查询的唯一部分。 目前该组件将插入一组以逗号分隔的命名绑定参数,然后将相应的IDbDataParameter对象附加到命令并执行; 组件知道它必须绑定的参数的类型。 这很有效,直到调用代码提供的参数集大于数据库愿意接受的参数集。 这里的目标是让这些大型集合通过ODP.NET处理针对Oracle 11gR2的查询。 由于以下方法被设定要求的人认为是不可接受的,因此这项任务有些复杂: 全球临时表 存储过程 任何需要CREATE TYPE东西都已被执行 解决方案不需要只执行一个查询。 我试图通过使用来自其他地方的代码将子句绑定为数组来完成此工作: IList values; //… OracleParameter parameter = new OracleParameter(); parameter.ParameterName = “parm”; parameter.DbType = DbType.String; parameter.Value = values.ToArray(); int[] sizes = new int[values.Count]; for (int index = 0; index < values.Count; index++) […]

隐藏DataGridView中的行,绑定在我的项目中不起作用

我在项目中面临一个关于DataGridView行隐藏的问题。 我粘贴的代码在一个单独的测试项目中工作,但不在我的项目中。 请帮帮我。 我正在测试的代码 public partial class frmTestGirdBinding : Form { CustomDataCollection cdata = new CustomDataCollection(); Random rnd = new Random(); public frmTestGirdBinding() { InitializeComponent(); } private void frmTestGirdBinding_Load(object sender, EventArgs e) { BindingSource bindingSource1 = new BindingSource(); bindingSource1.DataSource = cdata; dataGridView1.DataSource = bindingSource1; //bindingSource1.Filter = “Srno = 3”; not working CurrencyManager cm = (CurrencyManager)BindingContext[bindingSource1.DataSource]; […]

Getter属性在没有人调用的情况下运行

我在.net 3.5工作。 我有一个类“A”,它有一个堆栈和一个getter属性,当被调用时,它会删除堆栈中的第一个项目并检索下一个项目。 在初始化类之后,我看到getter在没有被调用的情况下工作,并且删除了堆栈中的顶部项,从而给了我不好的结果。 吸气剂中的断点并未显示任何人通过它。 当我将属性更改为函数时,堆栈返回ok。 如果有人可以解释为什么会这样,我会很高兴。 这是简化的类: public class A { private Stack Urls; public A(string title, string[] array) { Urls = new Stack(); foreach (string s in array) { Urls.Push(s); } } public string Url { get { return Urls.Peek(); } } public string NextUrl { get{ if (Urls.Count > 1) { Urls.Pop(); […]