我试图从这个页面运行这个例子#1:http://php.net/manual/en/language.exceptions.php
<?php
function inverse($x) {
if (!$x) {
throw new Exception('Division by zero.');
}
return 1/$x;
}
try {
echo inverse(5) . "\n";
echo inverse(0) . "\n";
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
// Continue execution
echo "Hello World\n";
?>
Run Code Online (Sandbox Code Playgroud)
然而,我得到的不是所需的输出:
0.2
Fatal error: Uncaught exception 'Exception' with message 'Division by zero.'
in xxx:
7 Stack trace: #0 xxx(14): inverse(0) #1 {main} thrown in xxx on line 7
Run Code Online (Sandbox Code Playgroud)
我使用的开发环境是UniServer 3.5 …
我发现了很多关于SEQUENCE(OF)ASN.1数据类型的标记值的矛盾信息:
维基百科声称它是0x10和0x30:
http://en.wikipedia.org/wiki/Abstract_Syntax_Notation_One - > 0x30
根据微软的说法,它是0x30:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb540799%28v=VS.85%29.aspx
在Bouncycastle的资料中可以找到:
public const int Sequence = 0x10;
Run Code Online (Sandbox Code Playgroud)
所以它基本上是0x10和0x30之间的联系.你知道真正的价值是或者我错过了什么吗?
我目前遇到Java的泛型类型擦除和运行时注释的问题,我不确定我是做错了什么,或者它是Java编译器中的错误.考虑以下最小的工作示例:
@Target({ ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface MyAnnotation {
}
public interface MyGenericInterface<T> {
void hello(T there);
}
public class MyObject {
}
public class MyClass implements MyGenericInterface<MyObject> {
@Override
@MyAnnotation
public void hello(final MyObject there) {
}
}
Run Code Online (Sandbox Code Playgroud)
现在,当我使用反射查询有关MyClass.hello的信息时,我希望hello方法仍然具有注释,但它不会:
public class MyTest {
@Test
public void testName() throws Exception {
Method[] declaredMethods = MyClass.class.getDeclaredMethods();
for (Method method : declaredMethods) {
Assert.assertNotNull(String.format("Method '%s' is not annotated.", method), method
.getAnnotation(MyAnnotation.class));
}
}
}
Run Code Online (Sandbox Code Playgroud)
(意外)错误消息如下所示:
java.lang.AssertionError:方法'public void test.MyClass.hello(java.lang.Object)'未注释.
用Java 1.7.60测试.
我用WCF开发了一个测试服务,我试图从Windows Phone 7应用程序中使用它,但是当从服务调用一个方法时,我得到了一个奇怪的例外:
在https://server/Service.svc上没有可以接受该消息的端点 .这通常是由错误的地址或SOAP操作引起的.
WCF服务使用具有UserNameOverTransport身份验证和SSL的自定义绑定.对于授权,我使用UserNamePasswordValidator的实现.如果我尝试从控制台或silverlight应用程序使用该服务(启用跨域策略) - 它工作正常(授权).最奇怪的是,为WP7应用程序生成的ServiceReferences.ClientConfig文件与为silverlight应用程序生成的配置文件完全相同.
我不知道我的服务有什么问题......
我对WCF世界相对较新,所以我的新手问题的applogies.我目前正在设计一层WCF服务.其中一个是身份验证服务,所以我提出了以下身份验证机制:
IUserService.TryAuthenticateUser(string username, string password, out string key)
Run Code Online (Sandbox Code Playgroud)
基本上,用户尝试进行身份验证,如果成功 - 他/她收到一个sessionkey/securitykey/whateverkey ......那么每个其他"WCF动作"都需要密钥,例如
IService.GiveMeMyFeatures(string key);
IService.Method1(string key);
Run Code Online (Sandbox Code Playgroud)
这个机制对我来说看起来非常直观,也很容易实现,所以困扰我的是为什么我找不到类似的WCF示例?根据应用程序的体系结构,这个唯一的密钥(实际上是一个具有wcf-side expiration的会话密钥和所有密钥)可以从各种应用程序中使用:对于ASP.NEt它可以存储在cookie中,用于Winform/WPF /移动我想它可以存储在字段中的表单类中等等......
所以这里有问题1:您如何看待这种方法?
我还读过,我可以使用内置的ASP.NET身份验证服务(使用成员资格提供程序等...如果我理解正确的话).从架构的角度来看,我真的不喜欢这种方法,因为从ASP.NET页面进行身份验证时,工作流将是这样的:ASP.NET - > WCF - > ASP.NET身份验证服务 - >响应
在这种情况下,还可以绕过WCF层并调用auth.服务方法直接来自asp.net页面.我知道通过WCF层获取每个身份验证请求,我将失去一些性能,但对我来说,拥有一个漂亮的分层架构非常重要......
这里是第2个问题:这个方法比第一个有什么优点/缺点,为什么它如此受欢迎,从架构的角度来看它有点不对?
我还读到,我可以为每个WCF方法调用发送用户凭据,并使用内置机制对请求进行身份验证和响应.
Q3:如果这种方法怎么看?
总而言之 - 显然有很多身份验证方法,但您认为哪一种最好也是最通用的(考虑到将从asp.net/wpf/mobile/etc调用WCF服务...)?
谢谢是提前:)