我跟随Tomek Janczuk在silverlight tv上的演示,创建了一个使用WCF Duplex Polling Web服务的聊天程序.客户端订阅服务器,然后服务器向所有连接的客户端发起通知以发布事件.
想法很简单,在客户端上,有一个允许客户端连接的按钮.客户端可以编写消息并将其发布的文本框,以及显示从服务器接收的所有通知的更大文本框.
我连接了3个客户端(在不同的浏览器中 - IE,Firefox和Chrome),它们都运行良好.他们发送消息并顺利接收.当我关闭其中一个浏览器时,问题就出现了.一个客户一出门,其他客户就会卡住.他们停止收到通知.
我猜测服务器中通过所有客户端并向他们发送通知的循环卡在现在丢失的客户端上.我尝试捕获异常并将其从客户端列表中删除(请参阅代码)但它仍然没有帮助.
有任何想法吗?
服务器代码如下:
using System;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Activation;
using System.Collections.Generic;
using System.Runtime.Remoting.Channels;
namespace ChatDemo.Web
{
[ServiceContract]
public interface IChatNotification
{
// this will be used as a callback method, therefore it must be one way
[OperationContract(IsOneWay=true)]
void Notify(string message);
[OperationContract(IsOneWay = true)]
void Subscribed();
}
// define this as a callback contract - to allow push
[ServiceContract(Namespace="", CallbackContract=typeof(IChatNotification))]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)]
public class ChatService …Run Code Online (Sandbox Code Playgroud) 这个问题与前一个问题有关:
使用Firebug分析这两个代码片段时:
function ie6PNGFixLoader(scriptURL) {
if(arguments.length > 0) {
for (var i = 0; i < arguments.length; i++) {
$.ajax({// load PNG fix scripts
url: arguments[i],
cache: true,
dataType: 'script'
});
}
} else {
return false;
}
}
var pngFix = "/Global/ICIS/Scripts/DD_belatedPNG_0.0.8a-min.js";
var pngList = "/Global/ICIS/Scripts/DD_PNG_listing.js";
ie6PNGFixLoader(pngFix, pngList);
Run Code Online (Sandbox Code Playgroud)
和
function InjectScriptsAndExecute(url) {
this.url = url;
}
InjectScriptsAndExecute.prototype.InjectMethod = function() {
var inject = $.ajax({
url: this.url,
cache: true,
dataType: 'script',
async: false, // Otherwise you cannot depend on …Run Code Online (Sandbox Code Playgroud) 我有一个SQL查询,我需要在ASC中排序结果,但我需要数字和空格位于结果的最后位置,而不是第一个.
SELECT title FROM movie ORDER BY title ASC
Run Code Online (Sandbox Code Playgroud)
使用上面的代码,我得到的标题从[空格],0-9,A,B,C开始...我需要这样的形式:A,B,C,...,Z,[其他]
谢谢你的帮助.
使用c#和.net 3.5我正在尝试针对包含的模式验证xml文档.
模式和包括如下
Schema1.xsd - >包含another.xsd
another.xsd - > include base.xsd
当我尝试将Schema1.xsd添加到XmlDocument时,我收到以下错误.
未声明类型"YesNoType"或不是简单类型.
我相信我收到此错误,因为我加载Schema1.xsd架构时没有包含base.xsd文件.
我正在尝试使用XmlSchemaSet类,并且我将XmlResolver uri设置为模式的位置.
注意:所有模式都位于同一目录E:\ Dev\Main\XmlSchemas下
这是代码
string schemaPath = "E:\\Dev\\Main\\XmlSchemas";
XmlDocument xmlDocSchema = new XmlDocument();
XmlSchemaSet s = new XmlSchemaSet();
XmlUrlResolver resolver = new XmlUrlResolver();
Uri baseUri = new Uri(schemaPath);
resolver.ResolveUri(null, schemaPath);
s.XmlResolver = resolver;
s.Add(null, XmlReader.Create(new System.IO.StreamReader(schemaPath + "\\Schema1.xsd"), new XmlReaderSettings { ValidationType = ValidationType.Schema, XmlResolver = resolver }, new Uri(schemaPath).ToString()));
xmlDocSchema.Schemas.Add(s);
ValidationEventHandler valEventHandler = new ValidationEventHandler
(ValidateNinoDobEvent);
try
{
xmlDocSchema.LoadXml(xml);
xmlDocSchema.Validate(valEventHandler);
}
catch (XmlSchemaValidationException xmlValidationError) …Run Code Online (Sandbox Code Playgroud) using(DataContext db = new DataContext ())
{
var result = db.SomeTable.ToList();
return result;
}
Run Code Online (Sandbox Code Playgroud)
问题是在我返回结果后,连接被关闭,因为它关闭了,当我试图访问任何子元素时它会崩溃.发生这种情况是因为延迟加载设置为True(默认值)它永远不会在使用之前加载子关系,并且在关闭连接后我开始使用它们.那么解决这个问题的最佳方法是怎样的呢?
我试图关闭延迟加载,但它没有加载任何子关系表.
所以我的问题是:什么是Java包,.NET程序集和.NET命名空间,是一个与.NET命名空间相同的Java包?
我使用谷歌来获得以下内容:
Java包: Java包提供了一种根据文件的功能,可用性以及它们应属于的类别将文件组织到不同目录的方法.包的示例是JDK包.
.NET程序集: .NET程序集为物理代码分组提供了基本单元.
.NET命名空间: .NET命名空间提供逻辑代码分组的基本单元.
我已经读过他们,但还没有真正理解,有谁可以请进一步解释?
我一直在互联网上搜索任何样本或获取如何使用XML扩展与Ninject绑定的开始文章,但我找不到任何帮助!,
任何机构可以为我提供一个非常小的样本,我该怎么做?
提前致谢
我们有一个旧的(Win32)和新的(WPF)版本的我们的印迹软件,交易商目前正在并行运行.但是,运行WPF应用程序通常会严重降低Win32应用程序的重绘速度.
如果WPF应用程序没有运行(或最小化),则Win32应用程序中的绘制速率会流畅且快速.随着WPF应用程序打开,Win32应用程序的UI绘制速率明显减慢.运行WPF应用程序似乎会触发使用一些从Win32应用程序中获取的资源(两者都是图形密集的) - 导致它看起来变慢.
CPU和内存不会接近饱和,所以它似乎与那些无关.降低分辨率和/或减少要显示的监视器数量(因此降低显卡内存使用量和带宽负载)没有明显区别,因此它似乎也不是图形硬件性能问题.
可以解释原因的一个假设如下:
在引擎盖下,我们知道WPF和Win32应用程序都将图形信息输出到Windows"消息泵",这基本上是绘制到屏幕的内容的指令队列.看起来好像WPF应用程序没有运行时,Win32可以完全自由地访问它,屏幕更新也很流畅.在它旁边运行WPF应用程序会在此队列上添加其他消息,因此Win32应用程序必须更加难以进行访问(为了进行每个屏幕元素更新),因此"堵塞泵"会产生我们看到的效果.
如果是上述情况,任何人都可以推荐管理/控制窗口消息泵的方法,以防止这种情况发生吗?
闪烁是资源不足时通常会获得的类型,您可以在其中看到单个元素(表单,标签)闪烁并逐渐绘制到屏幕上.
如果有人有任何建议/想法,请告诉我们.
我知道我可以使用编译的exe文件生成新进程.
假设我的应用程序中有一个方法,我想在单独的进程中运行.
我可以在运行时和生成这个新创建的文件的spawn进程中将此方法编译为单独的程序集吗?
c# ×3
.net ×2
performance ×2
browser ×1
css ×1
css-hack ×1
entity ×1
java ×1
javascript ×1
ninject ×1
object ×1
oop ×1
opera ×1
reflection ×1
schema ×1
silverlight ×1
sql ×1
sql-order-by ×1
wcf ×1
winapi ×1
windows ×1
wpf ×1
xml ×1
xmldocument ×1
xmlschemaset ×1