小编wak*_*rth的帖子

WCF ExceptionShielding错误ID与传递给Handler的handlingInstanceId不匹配

我的服务装饰如下

<ExceptionShielding("MyExceptionPolicyName")>
Run Code Online (Sandbox Code Playgroud)

当抛出一个错误异常时,我的策略会收到错误并登录就好了.它接受handlingInstance Id并将其与错误一起记录以供参考.我注意到的是,故障中返回的Guid"错误ID:"与传递给处理instanceId的Guid不同.

我也尝试过装饰这样的操作

<FaultContract(GetType(ValidationFault))>
Run Code Online (Sandbox Code Playgroud)

但这会产生相同的结果.

我想要做的是如何捕获"错误ID:"传递回消费者,以便我可以将其与异常一起记录.*附加信息:异常策略处理程序是一个自定义的处理异常,并将其各种属性和数据记录到特定的异常日志数据库模式中.

有谁知道怎么做到这一点?

更新: 根据@Jay Patel的评论,我将此添加到我的配置中以启用跟踪

<system.diagnostics>
    <sources>
      <source name="System.ServiceModel"
              switchValue="Information, ActivityTracing"
              propagateActivity="true">
        <listeners>
          <add name="traceListener"
              type="System.Diagnostics.XmlWriterTraceListener"
              initializeData= "c:\Temp\Traces.svclog" />
        </listeners>
      </source>
    </sources>
  </system.diagnostics>
Run Code Online (Sandbox Code Playgroud)

然后,我执行了一个请求,以获得由异常屏蔽屏蔽的故障响应.故障响应字符串的格式如下:"使用此服务时出错.请联系您的管理员以获取更多信息.错误ID:{GUID}"

然后我查看了跟踪日志,发现没有GUID或此字符串的证据.

以下是使用ExceptionShielding时关心查看示例的任何人的tracelog 的pastebin链接.

UPDATE2:

再次,根据@Jay Patel的评论,补充说明.我为maxMessageLog尝试了-1和max int值,以确保我在该日志中获得最大量的数据.

<diagnostics>
  <messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" maxMessagesToLog="2147483647" />
</diagnostics>
Run Code Online (Sandbox Code Playgroud)

日志没有帮助.它甚至不包括任何关于回答我的问题的内容.

为了澄清以防上面不清楚...我希望能够在消息中的"错误ID:"之后捕获GUID回到客户端,这样我就可以使用异常处理程序记录的异常来记录它.这样,客户端可以联系"管理员",因为消息显示错误ID,并且实际上能够找到某些内容.

这是启用完整跟踪的pastbin

.net wcf enterprise-library exception fault

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

Facebook Graph api 如何通过访问令牌获取页面 ID

对于 Facebook 上的“用户”,我通过使用这个图形 API 调用来收集他们的用户 ID 之类的信息:https : //graph.facebook.com/me ? access_token = ...这每次都有效。

我的问题是......有没有办法通过授权后返回的访问令牌获取有关刚刚授权的页面的页面信息?

我试过了,id 不起作用,但这就是我要找的

https://graph.facebook.com/page?access_token= ...

如您所知,为了发布到“页面”墙就是像这样“发布”...... https://graph.facebook.com/PAGEID/feed?message=blahblah&access_token=XXXXXXXXXXXXXX

如何在不知道 ID 或页面“用户名”(无论如何你必须有 25 个喜欢使用)的情况下获取页面 ID 和有关已授权页面的其他信息???

感谢您对 stackoverflow 社区的任何帮助:)

facebook facebook-graph-api

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

TFS将两个变更集合并到同一分支中

我有更改集50195和50196.第一次登记是工作项目的90%工作,第二次是另外10%.我希望能够将这两个更改集合成一个,因此该工作项的100%工作可以在一个更改集中回滚.这可能吗?我已经看到有关将变更集合并到分支中的帖子,但没有将两个变更集合并为一个.

.net tfs changeset

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

Visual Studio测试项目启动事件?

我的项目都使用StructureMap作为容器/ IoC.我在存储库模式等方面利用它.在我的单元测试项目中,我已经在有意义的时候实现了测试存储库.为了使结构图知道要使用的具体实现,我需要初始化容器并运行类型的注册.我正在寻找一个在单元测试项目中调用IoC.Initialize()的地方.在单元测试之外,例如,在Web项目中,我可以从Global.asax初始化我的IoC容器/注册.我正在寻找相当于Global.asax的单元测试(例如静态void main,一种连接到单元测试的主要启动事件入口点的方法).我通过在所有测试中使用基类并在那里进行初始化来解决这个问题,因此任何运行的测试最终都会初始化IoC容器(如果它'

有什么建议?

UPDATE/ANSWER

以下是我根据马修的回应实施的解决方案.

<TestClass()>
Public Module Main

    Public Property TestContext As TestContext

    <AssemblyInitialize()>
    Public Sub Initialize(_TestContext As TestContext)

        TestContext = _TestContext
        IoC.Initialize()

    End Sub

End Module
Run Code Online (Sandbox Code Playgroud)

.net c# vb.net unit-testing

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

表单身份验证是否完全必要

我现在正在编写一个内部Web应用程序(使用ASP.Net Web Forms),这是一个奇怪的问题.我必须能够模拟当前登录的Windows用户,并根据他们的Windows身份验证执行命令登录..并且......如果他们没有在我必须使用的应用程序中设置Windows身份验证登录,我必须能够接受用户名和密码.我还必须在.Net 4.0中编写应用程序,并尽可能地保护它.我通过在web.config中不使用Windows身份验证或表单身份验证来实现这一点,而是设置会话变量以防止用户访问Web应用程序中的其他登录页面.我通过创建奇怪的名称会话变量来实现此目的使用基于用户名的值(windows auth或不是),然后是一个秘密会话变量.秘密变量在web.config中作为256位加密字符串,我在其中解密,并设置为会话密钥.为了加载页面,第一个会话变量不能为空,第二个变量必须等于解密的键值...如果变量没有通过检查,它会将它们重定向到登录页面.我在Web应用程序中的每个页面,通用处理程序和webservice方法上进行了设置.我在没有活动几分钟后使会话超时,并且在注销时,我将所有会话变量设置为空,并使所有cookie到期.(我也禁用所有缓存).

我的问题是......这是否提供与Forms身份验证相当的安全性?我一直使用Forms身份验证,但不能在这里使用它.如果我这样做,用户将不得不在IIS和web.config中重新配置设置以切换登录过程(据我所知,您不能同时使用Forms身份验证和Windows身份验证来管理页面和其他Web的安全性资源).通过上述方法,我可以实现两全其美,但我很好奇我的方法的安全性.还有什么我可以在这里实现,以确保使用表单身份验证的最大安全性?是否可以在不使用Forms身份验证的情况下实现相同级别的安全性?

感谢您提前了解任何见解!

vb.net asp.net authentication session webforms

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

从ViewModel中的Observable集合中删除不会更新View,但现有项目的更新会更新View

我相信这对某人来说是一个扣篮...... 手指交叉

我的ListView ItemsSource绑定到我的ViewModel上名为TileItems的Property.

填充列表视图可以完美更新.

在ViewModel中,您可以看到"existingTileItem.Transaction = e.Transaction"...单个列表视图项目完美更新.

在ViewModel中,您可以看到"Me.TileItems.Remove(existingTileItem)"...项目未从视图中删除.它确实从Me.TileItems集合中成功删除,但视图中未描述更新.

附加信息:AbstractViewModel实现了INotificationPropertyChanged,我已经尝试在TileItem中重写Equals而不是覆盖它,并且所有周围都会发生相同的结果.我已经看到了这个答案和这个答案,但他们没有回答我遇到的问题.

XAML:

<UserControl.DataContext>
    <local:TransactionTileResultsViewControlViewModel />
</UserControl.DataContext>

<ListView Grid.Row="1"  Name="tileItems" ItemsSource="{Binding TileItems, Mode=TwoWay}" 
                  ItemTemplate="{StaticResource tileItemDataTemplate}" ScrollViewer.HorizontalScrollBarVisibility="Hidden"
                  HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
Run Code Online (Sandbox Code Playgroud)

视图模型:

Public Class TransactionTileResultsViewControlViewModel
    Inherits AbstractViewModel
    Implements INavigationAware

    Private _tileItems As TileItems
    Public Property TileItems As TileItems
        Get
            Return Me._tileItems
        End Get
        Set(value As TileItems)
            Me._tileItems = value
            MyBase.RaisePropertyChanged("TileItems")
        End Set
    End Property

'....


    #Region "TransactionUpdateReceived Methods"

        Private Sub TransactionUpdateReceived_Handler(ByVal e As TransactionUpdatedEvent)

            If e.Transaction IsNot Nothing Then

                Dim …
Run Code Online (Sandbox Code Playgroud)

.net wpf observablecollection mvvm viewmodel

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