我有一个项目有两个silverlight应用程序(foo1和foo2)和一个ASP.NET Web服务(foo.web).当我创建foo1时,我将其配置为托管在我的Web应用程序中,选择"将此Silverlight控件链接到现有网站",然后选择foo.web作为站点.然而,当我创建foo2时,我选择"自动生成测试页面以在构建时托管Silverlight".
我最初这样做是因为除了托管页面之外我没有使用ASP.NET功能,我想我可以节省一些麻烦.但是,在进行了一些开发之后,我了解到当我的应用程序托管在纯HTML页面上时,如果我尝试使用WebClient,我将收到安全性错误.所以事实证明我必须通过ASP.NET应用程序来托管它.
当我查看项目的属性页面时,我看不出与我的托管选择相对应的任何差异.我认为它将在"Silverlight"或"Debug"选项卡下,但在两个项目中看起来都是一样的.
在项目foo2中需要更改什么,以便它将由Web应用程序(foo.web)中的ASP.NET页面托管,而不是托管在生成的HTML页面上?
我正在为MFC应用程序开发一个庞大的老化代码库.随着时间的推移,许多开发人员已经开始使用该代码,因此,我们在处理新分配失败的可能性的代码中有三种不同的方式.
第一种方法是测试new的结果为NULL.我们不使用nothrownew.obj,所以这显然是一个需要清理的错误.
第二个是捕获CMemoryException*(是的,在编译器中启用了C++异常).根据我的理解,MFC会覆盖标准运算符new,而是抛出这个东西.我很确定第二种方法在MFC应用程序本身中是正确的.MFC覆盖new,其奇怪的CMemoryException抛出版本.
最后一个来自我们熟悉C++的人,但不一定是MFC程序员.他们正在捕捉const std :: bad_alloc&.
我真正不知道的是链接到应用程序的静态库会发生什么.这是使用bad_alloc生命的绝大多数代码.假设这些库没有使用MFC或ATL编译,并且只使用标准C++编写,他们是否可以捕获bad_alloc?或者,他们链接的应用程序中MFC的存在是否会使用全局新运算符感染它们并使它们尝试在错误的分配上干净利落地失败?
如果你有答案,你能解释一下它是如何工作的,或者指出我正确的参考来解决这个问题吗?
我正在使用WCF服务运行我的第一个Visual Studio 2008单元测试,并收到以下错误:
测试方法UnitTest.ServiceUnitTest.TestMyService引发异常:System.ServiceModel.Security.MessageSecurityException:HTTP请求未经授权,客户端身份验证方案为"Anonymous".从服务器收到的身份验证标头是"Negotiate,NTLM".---> System.Net.WebException:远程服务器返回错误:(401)未经授权..
我还在安全日志中收到以下失败的审核:
登录失败:原因:未在此计算机上授予用户请求的登录类型
用户名:( Internet来宾帐户)
域:
登录类型:3
登录过程:IIS
身份验证包:
MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
工作站名称:
我在Windows XP SP3计算机上的IIS 6.0中托管WCF服务.我为WCF服务虚拟目录检查了"匿名访问"和"集成Windows身份验证".
这是我的服务配置文件:
<system.serviceModel>
<services>
<bindings>
<basicHttpBinding>
<binding name="MyBinding">
<security mode="None" />
</binding>
</basicHttpBinding>
<customBinding>
<binding name="MyBinding">
<transactionFlow />
<textMessageEncoding />
<httpsTransport authenticationScheme="Ntlm"/>
</binding>
</customBinding>
<wsHttpBinding>
<binding name="MyBinding">
<security mode="None" />
</binding>
</wsHttpBinding>
</bindings>
<service
behaviorConfiguration="Service1Behavior"
name="Service1"
>
<endpoint
address=""
binding="wsHttpBinding"
bindingConfiguration="MyBinding"
contract="IService1"
>
<identity>
<dns value="localhost" />
</identity>
</endpoint>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="Service1Behavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior> …Run Code Online (Sandbox Code Playgroud) 我有一个同事发誓
//in a singleton "Constants" class
public static final String EMPTY_STRING = "";
Run Code Online (Sandbox Code Playgroud)
在整个项目中可用的常量类中.这样,我们可以写出类似的东西
if (Constants.EMPTY_STRING.equals(otherString)) {
...
}
Run Code Online (Sandbox Code Playgroud)
代替
if ("".equals(otherString)) {
...
}
Run Code Online (Sandbox Code Playgroud)
我说是的
谁是这里的白痴?
作为这个问题的后续问题,我已经在我的本地机器上运行了一个解决方案,但是没有在网络上的机器上运行.
我不太了解那些基础知识以外的插座,所以请耐心等待.目标是让客户端在本地网络上查找服务器,这是一些剪切/粘贴/编辑代码的结果.
这是客户端代码:
IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 10294);
byte[] data = new byte[1024];
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
client.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastTimeToLive, 10);
string welcome = "What's your IP?";
data = Encoding.ASCII.GetBytes(welcome);
client.SendTo(data, data.Length, SocketFlags.None, ipep);
IPEndPoint server = new IPEndPoint(IPAddress.Any, 0);
EndPoint tmpRemote = (EndPoint)server;
data = new byte[1024];
int recv = client.ReceiveFrom(data, ref tmpRemote);
this.IP.Text = ((IPEndPoint)tmpRemote).Address.ToString(); //set textbox
this.Port.Text = …Run Code Online (Sandbox Code Playgroud) 考虑我正在与将以某种格式发送消息(数据库表,消息队列,Web服务)的外部系统连接.在"消息头"中有"MessageType",它是1到20之间的数字.MessageType定义了如何处理消息的其余部分.有新的,修改的,删除的,取消的......
我的第一个倾向是设置枚举并定义所有类型.然后将数字解析为枚举类型.将它作为枚举,我将设置典型的开关案例系统,并为每种消息类型调用特定方法.
一个大问题是维护.
开关/箱体系统笨重而且很笨重,但它非常简单.
各种各样的表/配置系统可能很难让其他人知道并添加新消息或调整现有消息.
对于大约12个MessageTypes,交换机/案例系统似乎非常合理.切换到表驱动系统的合理截止点是什么?
哪种系统最适合处理这些类型的问题?
我在这里为C#和Java设置了一个标签,因为它绝对是一个常见的问题.还有许多其他语言具有相同的问题.
我可以正确设置一个Windows挂钩,但我对MSDN中的行"混淆"说"调用CallNextHookEx函数链接到下一个挂钩程序是可选的,但强烈建议;否则,其他已安装挂钩的应用程序将没有收到钩子通知,结果可能表现不正确.你应该调用CallNextHookEx,除非你绝对需要阻止其他应用程序看到通知."
我想成为一个优秀的编程公民并打电话给下一个钩子.但是,我的钩子程序看起来像这样:
LRESULT CALLBACK CBTProc(int code, WPARAM wp, LPARAM lp)
{
if (code != HCBT_CREATEWND)
{
// What do I do here? It's not the event I requested so how do I pass it on?
return 0;
}
// It's the code we want (create window)
CallNextHookEx(...);
...
}
Run Code Online (Sandbox Code Playgroud)
那么,如果代码不是我感兴趣的代码,那么钩子程序会发生什么?我怎么称呼下一个钩子?
编辑:主要问题是从SetWindowsHookEx返回一个HHOOK,需要将其传递给CallNextHookEx函数.
更新:似乎在NT平台上忽略了hook参数:
http://msdn.microsoft.com/en-us/library/ms644974.aspx
http://www.klenotic.com/pl/null_hhook/
我正在寻找一种策略,以阻止分支表的重复问题.例如,作为一个虚构的用例,假设我有一个用户表,其中包含他们的姓名,登录名,密码和其他元数据.在这种特定情况下,假设用户被限制为按照特定的IP子集登录.因此,我们有1:M的关系.每次出现如下用例时,您的正常工作流程包括具有"用户"表和"user_ips"等表格,在这种情况下,您将拥有诸如pk(ip_id),fk之类的内容( user_id)和user_ips侧的IP.
对于类似的情况,你们这些人通常会像上面那样流行吗?有机会在这里有效地反规范化吗?也许以某种CSV分隔的方式将IP存储在BLOB列中?您今天正在部署的策略有哪些?
最近几个问题讨论了命名列的策略,我很惊讶地发现了在列名中嵌入外键和主键概念的概念.那是
select t1.col_a, t1.col_b, t2.col_z
from t1 inner join t2 on t1.id_foo_pk = t2.id_foo_fk
Run Code Online (Sandbox Code Playgroud)
我必须承认我从来没有使用任何使用这种方案的数据库系统,我想知道它有什么好处.我看到它的方式,一旦你学会了系统的N个主表,你就会用这些表写出几个数量级的请求.
为了提高开发效率,您需要了解哪些表是重要的表,哪些表是简单的支流.您需要向内存提交大量列名.其中一个基本任务是将两个表连接在一起.为了减少学习工作,最简单的方法是确保两个表中的列名相同:
select t1.col_a, t1.col_b, t2.col_z
from t1 inner join t2 on t1.id_foo = t2.id_foo
Run Code Online (Sandbox Code Playgroud)
我认为,作为一个开发人员,你不需要提醒那些关于哪些列是主键,哪些列是外键而哪些列什么都没有.如果你很好奇的话,很容易看到架构.当看着一个随机的
tx inner join ty on tx.id_bar = ty.id_bar
Run Code Online (Sandbox Code Playgroud)
......知道哪一个是外键是非常重要的吗?外键仅对数据库引擎本身很重要,以允许它确保引用完整性并在更新和删除期间执行正确的操作.
这里有什么问题要解决?(我知道这是一个讨论的邀请,并随时可以这样做.但与此同时,我正在寻找答案,因为我可能真的错过了一些东西).