我有一个托管在Web应用程序(IIS)中的WCF服务.我需要暴露1个终点wsHttp而另一个终止netTcp.我在IIS7环境中,使我可以托管非基于HTTP的服务.无论如何,当我浏览时.svc使用浏览器文件,我收到错误:
无法激活该服务,因为它不支持ASP.NET兼容性.为此应用程序启用了ASP.NET兼容性
通过谷歌搜索,我意识到WCF以两种模式运行 - 混合和ASP.NET兼容.当我应用属性时
[AspNetCompatibilityRequirements(
RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
Run Code Online (Sandbox Code Playgroud)
但是,似乎一旦我将此属性应用于服务合同实现,我就无法使用非HTTP绑定.
如何设置它以便:
有没有办法将所有查询字符串名称/值对都放入集合中?
我在.net中寻找内置方式,如果不是,我可以拆分&并加载一个集合.
在我正在处理的应用程序中,有表格数据(对于记录,它是使用的Java Swing应用程序JTables).在某些情况下,可以通过单击列标题对数据进行排序.我想知道的是,如果给定列是否可排序,向用户指示的好方法是什么?
我想出了以下可能性.
1)在每个可排序列中放置一个图标,表示它是可排序的.我个人不喜欢这个选项.
2)当鼠标悬停在标题上以指示它是可排序的时,将鼠标光标更改为其他内容.
3)将鼠标悬停在列上并说它可以排序时,在工具提示文本中添加注释.
有没有人有任何其他建议?
更新:
我认为澄清是有道理的.我的问题不是如何表明给定列当前已排序.这已经通过上/下排序三角模式实现.我想给用户一个线索,告诉他们在点击标题之前可以对哪些列进行排序以对其进行排序.
更新2:我想我应该解释为什么我没有完全卖掉选项#1.在我看来,如果要设置一个图标来指示哪些列可以排序,那么这将增加视觉混乱.在这种情况下,有时UI会在"鼠标悬停"上发生变化.例证:Windows Vista和7允许用户在列上添加过滤器,但只有用鼠标悬停在标题上时才会显示此指示符.
我在使用另一个功能从另一个模块替换功能时遇到了麻烦,这让我发疯了.
假设我有一个模块bar.py,如下所示:
from a_package.baz import do_something_expensive
def a_function():
print do_something_expensive()
Run Code Online (Sandbox Code Playgroud)
我有另一个模块,看起来像这样:
from bar import a_function
a_function()
from a_package.baz import do_something_expensive
do_something_expensive = lambda: 'Something really cheap.'
a_function()
import a_package.baz
a_package.baz.do_something_expensive = lambda: 'Something really cheap.'
a_function()
Run Code Online (Sandbox Code Playgroud)
我希望得到结果:
Something expensive!
Something really cheap.
Something really cheap.
Run Code Online (Sandbox Code Playgroud)
但相反,我得到了这个:
Something expensive!
Something expensive!
Something expensive!
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我没有想法!如果我这样做:
string strTo = "email1@domain.com";
string strFrom = "email1@domain.com";
string strSubject = "turn on html";
MailMessage mail = new MailMessage(strFrom, strTo, strSubject, "<u>ok!</u>");
SmtpClient smtp = new SmtpClient("127.0.0.1");
smtp.Send(mail);
Run Code Online (Sandbox Code Playgroud)
它有效,但我在outlook中看到了html标签.
如果我做:
mail.IsBodyHtml = true;
Run Code Online (Sandbox Code Playgroud)
之前
smtp.Send(mail);
Run Code Online (Sandbox Code Playgroud)
我没收到电子邮件!
我检查了Exchange邮件跟踪,消息不存在.
我检查了smtp日志,我没看到我的消息!
我查了垃圾邮件过滤器,没有留言!
我查了垃圾邮件文件夹,不是那里!
奇怪的是,如果我将strTo更改为外部电子邮件,它可以工作!!!!
在这里发疯:-(
我正在尝试使用MethodInfo MakeGenericMethod,如下所示:
foreach (var type in types)
{
object output = null;
var method = typeof (ContentTypeResolver).GetMethod("TryConstruct");
var genmethod = method.MakeGenericMethod(type);
var arr = new object[] { from, output };
if ((bool)genmethod.Invoke(null, arr))
return (IThingy)arr[1];
}
Run Code Online (Sandbox Code Playgroud)
针对以下通用方法:
public static bool TryConstruct<T>(string from, out IThingy result) where T : IThingy, new()
{
var thing = new T();
return thingTryConstructFrom(from, out result);
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是我在MakeGenericMethod行上得到了一个争论异常,因为我传递的类型不是'new()'
这有什么办法?谢谢
平均而言,这更快 - 检查值,然后,如果需要,分配,或只是分配?或者,用C++术语:
bool b;
if(b)
b = false;
Run Code Online (Sandbox Code Playgroud)
要么
b = false;
Run Code Online (Sandbox Code Playgroud)
假设if()条件为真,概率为50%.答案很可能是高度依赖于架构的 - 请说出您的低级别考虑因素.写入总是弄脏缓存行 - 对吧?因此,通过避免写入,我们在0.5个案例中避免了缓存刷新.但是足够聪明的缓存可能会检测到一个简单的写入而不是自己的脏.但无条件写入始终只是一个内存操作,而读写平均是1.5个操作.
免责声明:这是一个好奇的问题,而不是我实际面临的问题.
我目前遇到了很多关于Unicode的问题.据我了解,TCHAR被定义为wchar_t或char,具体取决于是否在某处定义了_UNICODE,还有其他各种函数可以帮助解决这个问题.显然_T("x")应该根据设置的东西将'x'评估为wchar_t或char.我有以下代码:
TCHAR desiredClassName = _T("ChatClass");
Run Code Online (Sandbox Code Playgroud)
它给了我以下不友好的错误信息:
error C2440: 'initializing' : cannot convert from 'const wchar_t [10]' to 'TCHAR'
Run Code Online (Sandbox Code Playgroud)
这对我来说没有任何意义.当然TCHAR应该是一个wchar_t的东西吗?为什么不呢?
顺便说一句,我根本不关心使用Unicode,但显然windows.h或类似的东西迫使我这样做.如果在互联网上的某个地方有一些方便的常见问题解答,以新手可以理解的方式解释所有这些各种不同类型的字符串和字符串的各种不同格式,我们将不胜感激.
当我使用Visual Studio 2008(SP1)上的"添加服务引用"导入给定服务时,所有请求/响应消息都被不必要地包装到消息合同中(命名为 - >"operationName"+"Request"/"Response"+最后"1").
代码生成器说:
// CODEGEN: Generating message contract since the operation XXX is neither RPC nor
// document wrapped.
Run Code Online (Sandbox Code Playgroud)
从Java服务生成wsdl的人说他们正在指定DOCUMENT-LITERAL/WRAPPED.
任何帮助/指针/线索将受到高度赞赏.
更新:这是我的wsdl的示例,其中一个操作看起来很可疑.请注意,与响应相比,请求的消息元素属性不匹配.
<!- imports namespaces and defines elements -->
<wsdl:types>
<xsd:schema targetNamespace="http://WHATEVER/" xmlns:xsd_1="http://WHATEVER_1/" xmlns:xsd_2="http://WHATEVER_2/">
<xsd:import namespace="http://WHATEVER_1/" schemaLocation="WHATEVER_1.xsd"/>
<xsd:import namespace="http://WHATEVER_2/" schemaLocation="WHATEVER_2.xsd"/>
<xsd:element name="myOperationResponse" type="xsd_1:MyOperationResponse"/>
<xsd:element name="myOperation" type="xsd_1:MyOperationRequest"/>
</xsd:schema>
</wsdl:types>
<!- declares messages - NOTE the mismatch on the request element attribute compared to response -->
<wsdl:message name="myOperationRequest">
<wsdl:part element="tns:myOperation" name="request"/>
</wsdl:message>
<wsdl:message name="myOperationResponse">
<wsdl:part element="tns:myOperationResponse" …Run Code Online (Sandbox Code Playgroud) c# ×4
.net ×3
wcf ×2
.net-3.5 ×1
asp.net ×1
assembly ×1
c++ ×1
char ×1
collections ×1
cpu ×1
file-io ×1
generics ×1
gui-design ×1
java ×1
jtable ×1
low-level ×1
python ×1
query-string ×1
reflection ×1
smtpclient ×1
swing ×1
ui-design ×1
web-services ×1
windows ×1