小编Vde*_*edT的帖子

使用WCF ServiceRoute的MVC2路由:Html.ActionLink呈现错误的链接!

我有一个与MVC2网站并排的WCF服务.我希望我的服务URL看起来像这样:

http://localhost/projdir/Service

MVC网站还处于起步阶段,因此它仍然拥有所有的样板控制器等.

以下代码在global.asax中乍一看:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.Add(new ServiceRoute("Service", new ServiceHostFactory(), 
               typeof(MyService)));

    routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new { controller = "Home", action = "Index", 
              id = UrlParameter.Optional } // Parameter defaults
    );
}
Run Code Online (Sandbox Code Playgroud)

该服务出现在我描述的地方,并按宣传的方式工作.大.

但是,我只是注意到以这种方式命令我的代码会改变我ActionLink的所有代码.例如,MVC站点上的"关于"选项卡现在显示如下:

http://localhost/projdir/Service?action=About&controller=Home

这显然是不正确的(它应该是http://localhost/projdir/Home/About/).

如果我将ServiceRoute添加移动到默认MapRoute()调用之下,那么我将丢失控制器错误.(实际上我得到一个"StructureMapControllerFactory没有返回控制器的实例"错误,因为我已经连接了StructureMap,呃,它不是一个控制器开始.)

有趣的是,它似乎只影响了产量Html.ActionLink().我可以手动输入http://localhost/projdir/Home/About/并进入正确的页面.

我制作了一个非常明显的新手错误?

wcf routing asp.net-mvc-3 asp.net-mvc-2

25
推荐指数
2
解决办法
5095
查看次数

故障或不故障

我正在与同事讨论何时抛出错误以及何时不在WCF服务中抛出错误.

有一种观点认为,当服务操作由于某些错误而无法完成工作时,我们只会抛出错误; 由于它,某些东西可能处于无效状态.所以,举一些例子:

  • ValidateMember(字符串名称,字符串密码,字符串国家/地区) - >如果未传递强制参数,则会引发错误,因为验证本身无法执行; - >如果发生了一些内部错误就会抛出错误,比如数据库已关闭 - >会在所有其他情况下返回状态合同,指定验证结果(MemberValidated,WrongPassword,MemberNotKnown,...)

  • GetMember(int memberId) - >只会在出现故障时抛出错误,在所有其他情况下它会返回成员,如果没有找到则返回null

另一种意见是我们也应该在GetMember找不到该成员时抛出错误,或者在ValidateMember的情况下密码错误.

你怎么看?

architecture wcf faults exception

10
推荐指数
1
解决办法
769
查看次数

通过Asp.Net MVC应用程序中托管的SignalR集线器从外部服务向Web客户端发送通知

场景如下:我们有一个Asp.Net MVC 4应用程序,它有一个私有消息系统,托管一个signalR集线器,用于在新消息可用时通知用户.一切正常,Web App注册connectionId及其用户名,信号通过notificationAdapter类从DataLayer发送到集线器.

当我们必须创建一个利用Quartz.Net的单独服务时,问题出现了,Quartz.Net也会在任务完成时发送私信.我们希望Quartz服务能够联系Hub,但我们不能让它在一个单独的过程中.我不想使用signalR .net客户端,因为我不需要基于Quartz的服务和我的Web App之间的永久连接.我想在我的WebSite中创建一个端点,将Hub的服务器方法暴露给服务或者使用ScaleOut,但我觉得我想念一些东西,虽然我会问社区.

c# architecture signalr

6
推荐指数
1
解决办法
1625
查看次数

`#import"FBConnect.h"`与'#import"FBConnect/FBConnect.h"'

我花了一些时间让XCode找到Facebook sdk.

我在"项目设置"中将"....../facebook-ios-sdk/src"添加到"标题搜索路径"中("目标信息"中的"标题搜索路径"未显示该目录),并使用:

#import "FBConnect.h" ,

而不是#import "FBConnect/FBConnect.h",然后XCode可以找到Facebook sdk.

由于'FBConnect.h'是直接在/ src下,在哪里'FBConnect'?什么"FBConnect/FBConnect.h"意思?你们在#import "FBConnect/FBConnect.h"没有手动'FBConnect'在XCode中添加目录或组的情况下使用吗?

iphone header-files fbconnect

5
推荐指数
1
解决办法
3130
查看次数

IOS SDK:初学者的第一个建议

我经常回答有关内存管理,UITableView,界面定位,MVC等基本主题的同类问题......

我很清楚,每个从这个SDK开始的人都太过兴奋了,但是一点点的阅读可以节省他们几个小时的调试时间以及"我们在这里错过了什么"的感觉所带来的挫败感.

我希望有经验的用户分享一些小文章,白皮书,文档,书籍章节,帮助其他人节省时间,避免挫败感.

我的第一次投票将是:

作为一般性建议,请阅读参考库中每个类的文档附带的概述部分,它包含了大部分您需要知道的以避免大陷阱!

model-view-controller cocoa-touch memory-management objective-c ios

5
推荐指数
1
解决办法
1630
查看次数

检索使用WSHttpBinding时由WCF自动设置的MessageId

我使用WCF来使用一个尊重WS表单的Web服务(然后我使用WSHttpBinding绑定).此表单涉及MessageID要在soap请求的标头中设置,并且RelatesTo字段中的响应标头中存在相同的id .我想记录我与此MessageId一起发出的请求,但无法找到检索WCF设置的messageId的方法,也可以手动设置它.我设法通过设置在球场上正确的属性,但是,要求这样做,让我将它,但是从响应得到它似乎WCF覆盖它,不要让我访问新值事件已经调用了.

任何的想法 ?

c# wcf wshttpbinding wcf-wshttpbinding

1
推荐指数
1
解决办法
2421
查看次数

WCF和MsmqBinding到远程专用队列

我们有一个使用MsmqBinding和WAS的WCF日志服务.问题是我尝试从远程计算机使用它,并且该消息似乎永远不会到达目标队列.以下是事实:

  1. 服务器配置
    • 项目清单
    • 目标计算机名称:logserver.domain.ext
    • 目标队列:private $/logservice.svc(启用日记功能)
    • 队列安全:每个人:完全控制,网络服务:完全控制
    • IgnoreOSNameValidation注册表项:set
  2. 客户端配置
    • 客户端端点地址:logserver.domain.ext/private/logservice.svc
  3. 观察到的行为
    • 输出队列创建良好,状态为Connected,0消息为wainting
    • 如果我暂停输出队列,我会看到消息出现,然后在恢复队列时消失
    • 在远程队列或日志中看不到任何消息

而且价值是:

var queue = new MessageQueue(@"FormatName:DIRECT=OS:logserver.domain.ext\private$\logservice.svc");
queue.Send("hello");
Run Code Online (Sandbox Code Playgroud)

工作!

wcf msmq netmsmqbinding

1
推荐指数
1
解决办法
2011
查看次数

为字典中的struct赋值时的编译错误

大家好,我在下一段代码中得到了编译错误('不能修改字典的返回值,因为它不是变量'):

public class BaseForm : Form
{

    protected void StoreGridViewPosition(DataGridView grid)
    {

        if (grids.ContainsKey(grid))
        {
            grids[grid].RowIndex = grid.CurrentCell.RowIndex;
            grids[grid].ColumnIndex = grid.CurrentCell.ColumnIndex;
        }

        Cell s = new Cell();
        s.RowIndex = 213;
    }

    protected void LoadGridViewPosition(DataGridView grid)
    {
    }

    private Dictionary<DataGridView, Cell> grids = new Dictionary<DataGridView, Cell>();

    private struct Cell
    {
        public int RowIndex;
        public int ColumnIndex;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我用类替换struct(Cell),那么它可以正常工作.为什么会这样?

c# struct class winforms

1
推荐指数
1
解决办法
268
查看次数