我有一个WCF服务,抛出一个异常,我试图在我的Silverlight客户端代码中捕获不成功.我使用Undeclared Faults进行调试,这是我的服务方法:
[OperationContract]
public ServiceResponse MyWCFServiceMethod()
{
ServiceResponse resp = new ServiceResponse ();
//code for setting resp...
//purposely throw error here.
throw new FaultException(new FaultReason(new FaultReasonText("My fault Reason!")),new FaultCode("my fault code here"));
return resp;
}
Run Code Online (Sandbox Code Playgroud)
现在在我的silverlight客户端视图模型中,在服务的回调方法中,我尝试像这样处理它:
private void MyServiceCallback(MyWCFServiceMethodCompletedEventArgs e)
{
if (e.Error == null)
{
//proceed normally
}
else if (e.Error is FaultException)
{
FaultException<ExceptionDetail> fault = e.Error as FaultException<ExceptionDetail>;
MessageBox.Show(fault.Detail.Message);
MessageBox.Show(fault.Reason.ToString());
}
}
Run Code Online (Sandbox Code Playgroud)
在这一行else if (e.Error is FaultException) 我仍然得到System.Net.WebException {远程服务器返回错误:NotFound.}
这些是配置条目
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" /> …Run Code Online (Sandbox Code Playgroud) 试着了解云服务的全部意义.我知道Microsoft是一家提供托管服务的提供商,您可以在其服务器上托管您的应用程序.那么这与我们一直在做的好的网络托管有什么不同呢?从我到目前为止所读到的内容,我无法确切地说云是更多的东西.
那么,就是这样吗?同一个旧东西的新名称?
我无法使用 HttpWebRequest 向 URL 发出发布请求。我已经应用了我在网上看到的所有建议。大多数答案都建议指定一个用户代理。我已经这样做了,并且也提供了超时,但我仍然得到了超时。我看到另一篇文章提到要指定 readwritetimeout 。我仍然得到相同的响应“服务器超时”。使用浏览器发布帖子在一秒钟内即可完成,但使用 C# 代码会出现超时问题。这是我的代码:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.ContentType = "application/x-www-form-urlencoded";
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2288.6 Safari/537.36";
request.Method = "POST";
request.KeepAlive = true;
request.CookieContainer = new CookieContainer();
request.Accept = "*/*";
request.ReadWriteTimeout = System.Threading.Timeout.Infinite;
request.Headers.Add("Accept-Encoding: gzip, deflate");
request.Headers.Add("Accept-Language: en-US");
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string Response = …Run Code Online (Sandbox Code Playgroud) 围绕应用程序设计的思维过程会有什么变化,你会推荐给那些通常从事经典asp.net项目的MVC全新的asp.net用户,就MVC希望你考虑你的设计的新方式而言?
除了传统的关注点分离,每个层都有自己的责任,还有一些新的工作方式需要注意.例如.在MVC 3中,我们有剃刀引擎,你无法使用任何服务器控件.没有回发.页面生命周期看起来不同.等等
更具体地说,为了使用webforms或razor从经典的asp.net转换到asp.net MVC,需要忘记或重新学习的东西是什么.
感谢您的时间并分享您的观点......
编辑
会话,缓存有什么变化吗?此外,我试图了解路由.似乎需要对我的mvc webforms应用程序中的每个视图以及参数进行操作.这不是说我必须考虑那里的许多不同的排列吗?在剃刀中似乎没有这种需要映射请求路由.那么在什么条件下我会在MVC应用程序中使用Razor而不是webforms?
我有一堆控制器和相关的视图需要对它们应用基于角色的身份验证.我正在考虑在其上安装一个带有[authorize]属性定义的基本控制器,以便我可以让所有从该基类继承的控制器在登录后才可用.我测试过这个工作.我不确定这是否是最好的做法,或者这种方法是否会有任何陷阱.
将来,我需要只有特定角色的用户才能访问某些页面.角色列表将来自数据库表.因此,我只是在它继承的基本控制器中进行更改,而不是更改所有相关的控制器.这是正确的做法吗?
谢谢你的时间.
asp.net-mvc authorization forms-authentication asp.net-mvc-3
我有一个定义一个方法的接口.此接口具有多个以不同方式实现该接口的类.
例如:
interface IJob {
void DoSomething();
}
class SomeJob : IJob{
public void DoSomething() {
// Do something ...
}
}
class AnotherJob : IJob {
public void DoSomething() {
// Do something ...
}
}
...
Run Code Online (Sandbox Code Playgroud)
我的工厂类将有一堆这些IF语句
if (some condition)
{
IJob job = new SomeJob ();
else
{
IJob job = new AnotherJob ();
}
Run Code Online (Sandbox Code Playgroud)
有没有办法避免每次出现新情况时修改工厂类.这可以通过添加一个实现IJob的新类来完成吗?
编辑: [我想弄清楚Antiifcampaign的这些人正在尝试做什么]
谢谢你的时间...
我有这UserRepository门课.
public class UserRepo : IUserRepo
{
public TheUser RegisterUser(UserRegistrationDetails details)
{
//implementation here
}
public bool DeleteUser(string username)
{
//implementation here
}
public TheUser UpdateUser(TheUser user)
{
//implementation here
}
}
Run Code Online (Sandbox Code Playgroud)
现在为了测试这个,我通过实现相同的接口创建了一个模拟存储库IUserRepo,我的测试类现在调用了这个Mock存储库.我觉得我在这里做错了,因为我没有测试实际的UserRepository类,而是另一个模拟的实现.我该怎么纠正这个?存储库是否经过测试?
我刚刚开始评估是否应该使用受OData影响的wcf数据服务或标准WCF服务应用程序作为Silverlight应用程序的主要数据源.我希望你的想法在哪种情况/情况下更好的方式.什么是电线更轻,更容易维护等.
到目前为止我收集的是:
请添加你的想法..
谢谢你的时间.
我在Silverlight 4中有一个登录页面.我使用MVVM来处理与页面的所有交互.成功登录后,我有一个自定义事件,在我的视图模型中触发,然后是导航到主页面的代码.我使用事件聚合,发布和订阅在视图之间导航.
AnimateLoginSuccess(this, null);
//code to navigate to the main page after successful login.
Run Code Online (Sandbox Code Playgroud)
我在我的视图中处理此事件,将其连接起来,其中LoginSuccessStoryboard是我为一些基本动画创建的故事板:
//constructor of view
public Login(LoginVM vm)
{
InitializeComponent();
DataContext = vm;
thisVM = vm;
vm.AnimateLoginSuccess += new EventHandler(vm_AnimateLoginSuccess);
}
//event handling method in view
void vm_AnimateLoginSuccess(object sender, EventArgs e)
{
LoginSuccessStoryboard.Begin();
}
Run Code Online (Sandbox Code Playgroud)
现在,问题是,即使动画在成功登录后开始,在成功登录时处理移动到不同视图的下一行使得移动到下一个视图的速度非常快,以至于它不会等待动画完成.从而使动画几乎不存在.关于如何使这项工作的任何想法?
我正在尝试在Visual Studio 2015 asp.net core 1.1中设置angular 2,并且在构建时遇到此错误。
上图中的相关文件位于路由器文件夹中
这是我的package.json
{
"name": "sample",
"version": "1.0.0",
"description": "",
"scripts": {
"start": "tsc && concurrently \"tsc -w\" \"lite-server\" ",
"e2e": "tsc && concurrently \"http-server -s\" \"protractor protractor.config.js\" --kill-others --success first",
"lint": "tslint ./app/**/*.ts -t verbose",
"lite": "lite-server",
"test": "tsc && concurrently \"tsc -w\" \"karma start karma.conf.js\"",
"test-once": "tsc && karma start karma.conf.js --single-run",
"tsc": "tsc",
"tsc:w": "tsc -w"
},
"keywords": [],
"author": "",
"license": "MIT",
"dependencies": {
"@angular/common": "~2.4.0",
"@angular/compiler": "~2.4.0",
"@angular/core": "~2.4.0", …Run Code Online (Sandbox Code Playgroud) c# ×4
asp.net-mvc ×3
silverlight ×2
wcf ×2
.net ×1
angular ×1
asp.net ×1
asp.net-core ×1
cloud ×1
mvvm ×1
odata ×1
oop ×1
razor ×1
unit-testing ×1