小编And*_*NET的帖子

无法在ELMAH中记录代码500错误

在我在IIS 7中运行的ASP.NET 4.0 MVC项目中,我已经设置并配置了ELMAH以记录我的站点上的错误.但是,我无法获得有关代码500的错误的任何报告.

我设置了一个简单的控制器,它创建了一个被零除的异常,但是ELMAH没有记录它.我可以让ELMAH记录其他消息就好了,我没有过滤掉ErrorLog_Filtering中的任何异常.

另外,为了显示自定义页面,我更新了web.config的httpErrors部分,如下所示:

<customErrors mode="RemoteOnly" defaultRedirect="~/error/GenericError">
  <error statusCode="403" redirect="~/error/AccessDenied" />
  <error statusCode="404" redirect="~/error/NotFound" />
  <error statusCode="500" redirect="~/error/Offline" />
  <error statusCode="501" redirect="~/error/Offline" />
  <error statusCode="503" redirect="~/error/Offline" />
</customErrors>
Run Code Online (Sandbox Code Playgroud)

<system.webServer>
    <httpErrors errorMode="DetailedLocalOnly" >
        <error statusCode="403" prefixLanguageFilePath="" path="/error/AccessDenied" responseMode="ExecuteURL" />
        <error statusCode="404" prefixLanguageFilePath="" path="/error/NotFound" responseMode="ExecuteURL" />
        <error statusCode="500" prefixLanguageFilePath="" path="/error/GenericError" responseMode="ExecuteURL" />
        <error statusCode="501" prefixLanguageFilePath="" path="/error/GenericError" responseMode="ExecuteURL" />
        <error statusCode="503" prefixLanguageFilePath="" path="/error/Offline" responseMode="ExecuteURL" />
Run Code Online (Sandbox Code Playgroud)

最后,在查看应用程序日志文件时,代码500错误消息不会显示在那里.

是否存在我缺少的配置或者我是否在某种程度上意外地自行捕获错误并且不让它传播?

iis-7 elmah asp.net-mvc-2

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

在Web项目之外使用Razor

我想使用Razor视图引擎生成电子邮件.

根据我的阅读,我可以使用这些操作系统项目从我的网站上执行此操作:

但是,所有这些都使用用户提交表单并从控制器发送电子邮件的示例.创建电子邮件时,似乎需要ControllerContext.我希望定期在我的"服务"层中进行生成,所以我怀疑我有权访问ControllerContext.

这可行吗?

razor asp.net-mvc-3

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

为所有与会者预约时设置CustomProperties

TL;博士

设置CustomProperties为具有与会者的约会时,只有组织者的约会才能获得CustomProperties.属性不会传播到其他与会者的约会.


更长的版本

当我们与多个与会者创建约会然后以每个与会者身份登录时,我们注意到每个与会者ItemId都不同.因此,会议中的每个与会者似乎都会获得自己的约会副本.(真的希望有人确认这是真的).

但是,从我们的加载项设置自定义属性(使用Outlook JavaScript API)时,只有组织者的约会才能获得自定义属性,因为当我们以任何其他与会者身份登录时,我们无法看到自定义属性.

我们的代码中的代码片段是相关的:

Office.initialize = function (reason) {
    $(document).ready(function () {
         Office.context.mailbox.item.loadCustomPropertiesAsync (onCustomPropertiesLoaded);
    });
};

function onCustomPropertiesLoaded(asyncResults) {
    _customProps = asyncResults.value;
}

//Set custom properties
_customProps.set("myProp", "true");
_customProps.saveAsync(customPropertiesOnSaved);
Run Code Online (Sandbox Code Playgroud)

有没有办法让每个约会副本都有自定义属性?

ms-office office-addins exchangewebservices outlook-addin office-js

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

部署 ARM 模板时获取 PrincipalId

是否可以检索正在部署 ARM 模板的用户的 ID?

有一个subscription()函数可以检索有关模板正在部署到的订阅的信息,包括订阅 ID,我希望主体有类似的东西。

azure azure-resource-manager

7
推荐指数
2
解决办法
2410
查看次数

从ActionParameters中检索复杂对象

我正在开发一个MVC项目,其中控制器操作处理资产.不同的控制器以不同的方式接受assetId参数:一些控制器只使用复杂对象(包含保存assetId的属性)获取int assetId,使用其他控制器int id和其他控制器AssetDTO dto

我正在编写一个ActionFilter,它被添加到action方法中,并提供了actionParameter名称,我可以在其中获取资产值.

行动方法:

    [AssetIdFilter("assetId")]
    public ActionResult Index(int assetId)
    {
            ...
    }
Run Code Online (Sandbox Code Playgroud)

该属性定义为:

public class AssetIdFilterAttribute : ActionFilterAttribute
{
    public string _assetIdParameterKey { get; set; }

    public AssetIdFilterAttribute (string assetIdParameterKey)
    {
        _assetIdParameterKey = assetIdParameterKey;
    }

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        int assetId;
        if (Int32.TryParse(filterContext.ActionParameters[_assetIdParameterKey].ToString(), out assetId))
        {
                    ......
        }
    }
Run Code Online (Sandbox Code Playgroud)

这可以按预期工作,但只有在assetId作为基元提供时才有效.我不确定当在一个复杂的对象中将assetId提供给action方法时该怎么办.

我是否需要根据类型对每个对象进行不同的解析?我希望我可以在AssetIdFilter中指定某种点符号来告诉它assetId的位置:dto.assetId

我可以用任何方式动态吗?还是反思?等.???

action-filter asp.net-mvc-3

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

使用ui-gmap-polygon监听`set_at`事件

我目前正在使用它DrawingManager来允许用户在地图上绘制形状.绘制一个形状后,我在多边形的路径上设置了一个监听器,这样我可以在路径改变后做出反应:

var polygonPath = event.overlay.getPath();
google.maps.event.addListener(polygonPath, 'set_at', function () { 
    // my code...
});
Run Code Online (Sandbox Code Playgroud)

当用户使用绘图工具添加新形状时,这非常有用.但是,如果我在数据库中已经使用ui-gmap-polygonAngularJS指令(来自angular-google-maps项目)显示多边形,那么如何监听set_at事件,因为此事件不在多边形上,而是在多边形的路径上(MVCArray))?

我能够set_atangular-google-maps项目的源代码中找到引用的唯一地方是array-sync.coffee文件,但它看起来并不像是暴露的.

如果我不能set_at直接使用指令来监听事件,我希望有一个事件在指令创建多边形时被触发,这样我就可以获得多边形的路径然后添加一个监听器,就像上面的代码.

我把JSFiddle基本结构和事件对象放在一起.它当前处理多边形的鼠标悬停和鼠标输出,但不处理set_at事件.

google-maps google-maps-api-3 angularjs angular-ui angular-google-maps

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

如何以编程方式启用/禁用Azure功能

有没有办法以编程方式启用/禁用Azure功能?

我可以使用"管理"部分下的门户启用/禁用功能,这会导致发送请求 https://<myfunctionapp>.scm.azurewebsites.net/api/functions/<myfunction>

JSON有效负载看起来有点像:

{
   "name":"SystemEventFunction",
   "config":{
      "disabled":true,
      "bindings":[ 
         // the bindings for this function
       ]
   }
  // lots of other properties (mostly URIs)
}
Run Code Online (Sandbox Code Playgroud)

我正在门户外创建一个管理工具,允许用户启用和禁用功能.

希望我可以避免手动创建JSON有效负载,所以我想知道SDK(WebJobs ??)中是否存在具有此功能的内容.

azure azure-webjobs azure-functions

6
推荐指数
3
解决办法
3491
查看次数

绑定到列表框时出现XamlParseException

在我的应用程序中,我允许用户将相机和照片库中的照片保存到隔离存储中.然后我获取每个文件的名称并阅读照片并添加到我的列表中.构建列表后,我将其绑定到列表框.

我可以大约5显示没有问题.滚动后我得到异常:

System.Windows.Markup.XamlParseException occurred
  Message= [Line: 0 Position: 0]
   --- Inner Exception ---
KeyNotFoundException
Run Code Online (Sandbox Code Playgroud)

这是我的XAML:

<ListBox x:Name="userPhotosListBox">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel x:Name="DataTemplateStackPanel" Orientation="Horizontal">
                <ContentControl Content="{Binding Image}" Width="400" />
                <Image Name="{Binding FileName}" Source="/Images/appbar.delete.rest.png" Width="48" Height="48"
                    MouseLeftButtonUp="Image_MouseLeftButtonUp" VerticalAlignment="Center" HorizontalAlignment="Center" MaxWidth="48" MaxHeight="48" />
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud)

这是代码:

using (var store = IsolatedStorageFile.GetUserStoreForApplication())
{
    var userFiles = store.GetFileNames();
    foreach (var userFile in userFiles)
    {
        if (userFile.Contains(PhotoInIsolatedStoragePrefix))
        {
            var currentBitmap = ReadBitmapImageFromIso(userFile);
            var userPhotoImage = new Image { Source = currentBitmap };
            var userImg = …
Run Code Online (Sandbox Code Playgroud)

c# xaml xamlparseexception windows-phone-7

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

设置与房间相关的ExtendedProperties

我对EWS和Exchange一般都很陌生,所以不确定什么是最好的方法.

背景

我正在尝试设置有关房间的配置信息.我希望EWS API为我提供了一个Room可以添加的对象ExtendedProperties,但是,看起来房间只是一个电子邮件地址.

然后我看到每个房间都有一个CalendarFolder关联它,所以我现在正试图设置房间配置CalendarFolder,这是下面的原始问题所指的.

原始问题

我正在尝试对使用进行简单更新CalendarFolder:

var folderId = new FolderId(WellKnownFolderName.Calendar, new Mailbox(roomEmail.Address));
var myCalendar = CalendarFolder.Bind(service, folderId, PropertySet.FirstClassProperties);

myCalendar.DisplayName += "Updated";
myCalendar.Update();
Run Code Online (Sandbox Code Playgroud)

但是,当我打电话时,.Update()我得到" 由于无效的属性值导致文件夹保存操作失败 ".

我相信这个问题可能与myCalendar没有日历文件夹在服务器上的所有属性有关.因此,当我更新对象时,它只发送导致验证错误的部分对象.

我该如何更新CalendarFolder

经过进一步研究

我也偶然发现了以下内容:

FindFoldersResults root = service.FindFolders(WellKnownFolderName.Calendar, new FolderView(500));

foreach (var folder in root.Folders)
{
     folder.DisplayName = "confRoom1";
     folder.Update();
}
Run Code Online (Sandbox Code Playgroud)

我确定这两种方法之间存在差异,但我不明白使用不同查询方法获得的文件夹之间的差异:

new FolderId(WellKnownFolderName.Calendar, new Mailbox(roomEmail.Address));
var myCalendar = CalendarFolder.Bind(service, folderId, PropertySet.FirstClassProperties);
Run Code Online (Sandbox Code Playgroud)

service.FindFolders(WellKnownFolderName.Calendar, new FolderView(500));
Run Code Online (Sandbox Code Playgroud)

哪种方法会给我正确的 …

.net c# exchange-server exchangewebservices

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

如何允许匿名用户访问虚拟目录

我目前阻止匿名用户访问我的根应用程序.

/web.config

  <system.web>
    <authorization>
      <deny users="?" />
    </authorization>
  </system.web>
Run Code Online (Sandbox Code Playgroud)

但我允许匿名访问公共资源(图像,CSS等):

  <location path="Images">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>
Run Code Online (Sandbox Code Playgroud)

现在,我想添加一个匿名用户可以访问的虚拟目录.我添加了一个基于Images路径的配置,但每当我尝试访问该位置时,我都会被重定向到登录页面,并将其ReturnURL设置为虚拟目录.

  <location path="virtualDirectory">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>
Run Code Online (Sandbox Code Playgroud)

另外,我试图在我的虚拟目录的web.config中指定全局授权但是得到一个错误,说我只能有一次

/virtualDirectory/web.config:

  <system.web>
    <authorization>
      <allow users="*" />
    </authorization>
  </system.web>
Run Code Online (Sandbox Code Playgroud)

当我的根应用程序阻止匿名访问时,如何允许匿名访问虚拟目录?

asp.net iis virtual-directory asp.net-authorization

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