2018年2月20日火曜日

.NET Framework 4 Client Profile に含まれないアセンブリ

<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client"/>
で欠けていると考えられるアセンブリ:

ISymWrapper.dll
Microsoft.Build.Conversion.v4.0.dll
Microsoft.Build.Engine.dll
Microsoft.Build.Framework.dll
Microsoft.Build.Tasks.v4.0.dll
Microsoft.Build.Utilities.v4.0.dll
Microsoft.Build.dll
Microsoft.VisualC.STLCLR.dll
PresentationBuildTasks.dll
System.Data.Entity.Design.dll
System.Data.OracleClient.dll
System.Data.Services.Design.dll
System.Data.Services.dll
System.Design.dll
System.Drawing.Design.dll
System.Runtime.Caching.dll
System.ServiceModel.Activation.dll
System.ServiceModel.Web.dll
System.Web.Abstractions.dll
System.Web.DataVisualization.Design.dll
System.Web.DataVisualization.dll
System.Web.DynamicData.Design.dll
System.Web.DynamicData.dll
System.Web.Entity.Design.dll
System.Web.Entity.dll
System.Web.Extensions.Design.dll
System.Web.Extensions.dll
System.Web.Mobile.dll
System.Web.RegularExpressions.dll
System.Web.Routing.dll
System.Web.dll
System.Windows.Forms.DataVisualization.Design.dll
System.Workflow.Activities.dll
System.Workflow.ComponentModel.dll
System.Workflow.Runtime.dll
System.WorkflowServices.dll
XamlBuildTask.dll

2018年1月9日火曜日

WSD LLMNR SSDP の送信元プロセスにつきまして

名前解決に関する通信の調査。
Process Monitor で追跡。
(参考: Windows 名前解決の謎 NET VIEW 編)

WSD

svchost.exe
fdPHost
Function Discovery Provider Host
DD36:52632 -> ff02::c:ws-discovery
DD36:52631 -> 239.255.255.250:ws-discovery
wsdapi.dll か
UDP port 3702

LLMNR

svchost.exe
いずれか: CryptSvc, Dnscache, LanmanWorkstation, NlaSvc, TapiSrv, TermService

DD36:53097 -> ff02::1:3:llmnr
DNSAPI.dll か
UDP port 5355

SSDP

svchost.exe
SSDPSRV
SSDP Discovery
DD36:52669 -> ff02::c:ssdp
ssdpsrv.dll か
UDP port 1900



2017年12月11日月曜日

ASP.NET Web Forms に MVC を合成

本当に📝程度ですいません…

nuget の件

Install-Package jQuery
Install-Package Microsoft.AspNet.Mvc
Install-Package EntityFramework
Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
Install-Package Microsoft.AspNet.Web.Optimization
Install-Package jQuery.Validation

Global.asax.cs の件

        protected void Application_Start(object sender, EventArgs e) {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }

App_Start/BundleConfig.csの件

using System.Web;
using System.Web.Optimization;

namespace hdb {
    public class BundleConfig {
        // For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862
        public static void RegisterBundles(BundleCollection bundles) {
            bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                        "~/Scripts/jquery-{version}.js"));

            bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                        "~/Scripts/jquery.validate.min.js"));

            bundles.Add(new ScriptBundle("~/bundles/jquery-ui").Include(
                        "~/Scripts/jquery-ui.min.js"));

            // Use the development version of Modernizr to develop with and learn from. Then, when you're
            // ready for production, use the build tool at http://modernizr.com to pick only the tests you need.
            bundles.Add(new StyleBundle("~/Content/css").Include(
                      "~/Content/site.css",
                      "~/Content/jquery-ui.min.css"));
        }
    }
}

App_Start/FilterConfig.cs の件

using System.Web;
using System.Web.Mvc;

namespace hdb {
    public class FilterConfig {
        public static void RegisterGlobalFilters(GlobalFilterCollection filters) {
            filters.Add(new HandleErrorAttribute());
        }
    }
}

App_Start/RouteConfig.cs の件


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

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

            routes.IgnoreRoute(""); // Default.aspx を使いたい場合

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );

        }
    }
}

Controllers/HomeController.cs 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace hdb.Controllers.Home
{
    public class HomeController : Controller
    {
        // GET: Home
        public ActionResult Index()
        {
            return View();
        }
    }
}

Views/Web.config

<?xml version="1.0"?>

<configuration>
  <configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    </sectionGroup>
  </configSections>

  <system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Optimization"/>
        <add namespace="System.Web.Routing" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>

  <appSettings>
    <add key="webpages:Enabled" value="false" />
  </appSettings>

  <system.webServer>
    <handlers>
      <remove name="BlockViewHandler"/>
      <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
    </handlers>
  </system.webServer>

  <system.web>
    <compilation>
      <assemblies>
        <add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      </assemblies>
    </compilation>
  </system.web>
</configuration>

Views/_ViewStart.cshtml

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

Views/Shared/_Layout.cshtml

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>@ViewBag.Title - My ASP.NET Application</title>
    @Styles.Render("~/Content/css")
    @Scripts.Render("~/bundles/modernizr")
</head>
<body>
    <div class="navbar navbar-inverse navbar-fixed-top">
        <div class="container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                @Html.ActionLink("Application name", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })
            </div>
            <div class="navbar-collapse collapse">
                <ul class="nav navbar-nav">
                </ul>
            </div>
        </div>
    </div>

    <div class="container body-content">
        @RenderBody()
        <hr />
        <footer>
            <p>&copy; @DateTime.Now.Year - My ASP.NET Application</p>
        </footer>
    </div>

    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/bootstrap")
    @RenderSection("scripts", required: false)
</body>
</html>

Views/Home/Index.cshtml

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>



2017年12月6日水曜日

mod_fcgid: can't apply process slot for

mod_fcgid エラー

[Wed Nov 15 10:52:54.770061 2017] [fcgid:warn] [pid 3784:tid 804] [client fe80::91cc:b8c9:52ed:2904:60525] mod_fcgid: can't apply process slot for C:/php7/php-cgi.exe, referer: http://...;

結論的には ThumbGen.exe (プログラム) が 0 バイトになっており、cmd.exe が実行終了しなかっ た、ことが原因でした。
プログラムの破壊はウィルス対策ソフトの不具合によるものか。
ThumbGen の再インストールで、対応。

ちなみに process slot は 1024 ございます。

/* Increase it if necessary */
#define FCGID_MAX_APPLICATION (1024)

/* FCGID_MAX_APPLICATION + 4 list headers */
#define FCGID_PROC_TABLE_SIZE (FCGID_MAX_APPLICATION+4)

2017年10月31日火曜日

MS-OXPROPS のプロパティ一覧を JSON 形式にしました


OXPROPS.json
https://drive.google.com/file/d/0Bygl-em20CSKVHlBWmtxVEdtbG8/view?usp=sharing

PidTagAttachLongFilename など JSON 形式で利用できるようにしました:

  "PidTagAttachLongFilename": {
    "Canonical name": "PidTagAttachLongFilename",
    "Description": "Contains the full filename and extension of the Attachment object.",
    "Property ID": "0x3707",
    "Data type": "PtypString, 0x001F",
    "Area": "Message Attachment Properties",
    "Defining reference": "[MS-OXCMSG] section 2.2.2.10",
    "Consuming references": "[MS-OXCICAL], [MS-OXOSMMS], [MS-OXRTFEX], [MS-OXCMAIL], [MSOXMSG], [MS-OXORMMS], [MS-OXOSMIME], [MS-OXODOC], [MS-OXOUM], [MS-OXTNEF]",
    "Alternate names": "PR_ATTACH_LONG_FILENAME, PR_ATTACH_LONG_FILENAME_A,"
  },

2017年10月18日水曜日

ASP.NET Web Forms に ASP.NET MVC を中途半端に合成したら、Web Forms の方でエラーが…

Event code: 3005 
Event message: ハンドルされていない例外が発生しました。 
Event time: 2017/10/18 10:54:35 
Event time (UTC): 2017/10/18 1:54:35 
Event ID: 8fd9c0557f114ba9a319136e4feed3dc 
Event sequence: 30 
Event occurrence: 3 
Event detail code: 0 
 
Application information: 
    Application domain: /LM/W3SVC/3/ROOT/toiawa-5-131527646223016368 
    Trust level: Full 
    Application Virtual Path: /toiawa 
    Application Path: C:\inetpub.543\wwwroot\toiawa\ 
    Machine name: DD7 
 
Process information: 
    Process ID: 10024 
    Process name: w3wp.exe 
    Account name: IIS APPPOOL\.NET v4.5 
 
Exception information: 
    Exception type: InvalidOperationException 
    Exception message: WebForms UnobtrusiveValidationMode には、'jquery' の ScriptResourceMapping が必要です。jquery (大文字と小文字が区別されます) という名前の ScriptResourceMapping を追加してください。
   場所 System.Web.UI.ClientScriptManager.EnsureJqueryRegistered()
   場所 System.Web.UI.WebControls.BaseValidator.RegisterUnobtrusiveScript()
   場所 System.Web.UI.WebControls.BaseValidator.OnPreRender(EventArgs e)
   場所 System.Web.UI.Control.PreRenderRecursiveInternal()
   場所 System.Web.UI.Control.PreRenderRecursiveInternal()
   場所 System.Web.UI.Control.PreRenderRecursiveInternal()
   場所 System.Web.UI.Control.PreRenderRecursiveInternal()
   場所 System.Web.UI.Control.PreRenderRecursiveInternal()
   場所 System.Web.UI.Control.PreRenderRecursiveInternal()
   場所 System.Web.UI.Control.PreRenderRecursiveInternal()
   場所 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

 
 
Request information: 
    Request URL: http://192.168.2.181:543/toiawa/Edit.aspx 
    Request path: /toiawa/Edit.aspx 
    User host address: 192.168.2.111 
    User:  
    Is authenticated: False 
    Authentication Type:  
    Thread account name: IIS APPPOOL\.NET v4.5 
 
Thread information: 
    Thread ID: 45 
    Thread account name: IIS APPPOOL\.NET v4.5 
    Is impersonating: False 
    Stack trace:    場所 System.Web.UI.ClientScriptManager.EnsureJqueryRegistered()
   場所 System.Web.UI.WebControls.BaseValidator.RegisterUnobtrusiveScript()
   場所 System.Web.UI.WebControls.BaseValidator.OnPreRender(EventArgs e)
   場所 System.Web.UI.Control.PreRenderRecursiveInternal()
   場所 System.Web.UI.Control.PreRenderRecursiveInternal()
   場所 System.Web.UI.Control.PreRenderRecursiveInternal()
   場所 System.Web.UI.Control.PreRenderRecursiveInternal()
   場所 System.Web.UI.Control.PreRenderRecursiveInternal()
   場所 System.Web.UI.Control.PreRenderRecursiveInternal()
   場所 System.Web.UI.Control.PreRenderRecursiveInternal()
   場所 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
 
 
Custom event details: 


対策:

修正方法
https://www.ipentec.com/document/document.aspx?page=asp-net-error-required-jquery-script-resource-mapping

回避策
http://zero-config.com/dotnet/aspnet_0001.html

2017年10月4日水曜日

System.Drawing.Imaging.ImageCodecInfo のリスト

ImageCodecInfo.GetImageDecoders()

[
  {
    "Clsid": "557cf400-1a04-11d3-9a73-0000f81ef32e",
    "FormatID": "b96b3cab-0728-11d3-9d7b-0000f81ef32e",
    "CodecName": "Built-in BMP Codec",
    "DllName": null,
    "FormatDescription": "BMP",
    "FilenameExtension": "*.BMP;*.DIB;*.RLE",
    "MimeType": "image/bmp",
    "Flags": 65543,
    "Version": 1,
    "SignaturePatterns": [
      "Qk0="
    ],
    "SignatureMasks": [
      "//8="
    ]
  },
  {
    "Clsid": "557cf401-1a04-11d3-9a73-0000f81ef32e",
    "FormatID": "b96b3cae-0728-11d3-9d7b-0000f81ef32e",
    "CodecName": "Built-in JPEG Codec",
    "DllName": null,
    "FormatDescription": "JPEG",
    "FilenameExtension": "*.JPG;*.JPEG;*.JPE;*.JFIF",
    "MimeType": "image/jpeg",
    "Flags": 65543,
    "Version": 1,
    "SignaturePatterns": [
      "/9g="
    ],
    "SignatureMasks": [
      "//8="
    ]
  },
  {
    "Clsid": "557cf402-1a04-11d3-9a73-0000f81ef32e",
    "FormatID": "b96b3cb0-0728-11d3-9d7b-0000f81ef32e",
    "CodecName": "Built-in GIF Codec",
    "DllName": null,
    "FormatDescription": "GIF",
    "FilenameExtension": "*.GIF",
    "MimeType": "image/gif",
    "Flags": 65543,
    "Version": 1,
    "SignaturePatterns": [
      "R0lGODlh",
      "R0lGODdh"
    ],
    "SignatureMasks": [
      "////////",
      "////////"
    ]
  },
  {
    "Clsid": "557cf403-1a04-11d3-9a73-0000f81ef32e",
    "FormatID": "b96b3cac-0728-11d3-9d7b-0000f81ef32e",
    "CodecName": "Built-in EMF Codec",
    "DllName": null,
    "FormatDescription": "EMF",
    "FilenameExtension": "*.EMF",
    "MimeType": "image/x-emf",
    "Flags": 65542,
    "Version": 1,
    "SignaturePatterns": [
      "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBFTUY="
    ],
    "SignatureMasks": [
      "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////8="
    ]
  },
  {
    "Clsid": "557cf404-1a04-11d3-9a73-0000f81ef32e",
    "FormatID": "b96b3cad-0728-11d3-9d7b-0000f81ef32e",
    "CodecName": "Built-in WMF Codec",
    "DllName": null,
    "FormatDescription": "WMF",
    "FilenameExtension": "*.WMF",
    "MimeType": "image/x-wmf",
    "Flags": 65542,
    "Version": 1,
    "SignaturePatterns": [
      "183Gmg=="
    ],
    "SignatureMasks": [
      "/////w=="
    ]
  },
  {
    "Clsid": "557cf405-1a04-11d3-9a73-0000f81ef32e",
    "FormatID": "b96b3cb1-0728-11d3-9d7b-0000f81ef32e",
    "CodecName": "Built-in TIFF Codec",
    "DllName": null,
    "FormatDescription": "TIFF",
    "FilenameExtension": "*.TIF;*.TIFF",
    "MimeType": "image/tiff",
    "Flags": 65543,
    "Version": 1,
    "SignaturePatterns": [
      "SUk=",
      "TU0="
    ],
    "SignatureMasks": [
      "//8=",
      "//8="
    ]
  },
  {
    "Clsid": "557cf406-1a04-11d3-9a73-0000f81ef32e",
    "FormatID": "b96b3caf-0728-11d3-9d7b-0000f81ef32e",
    "CodecName": "Built-in PNG Codec",
    "DllName": null,
    "FormatDescription": "PNG",
    "FilenameExtension": "*.PNG",
    "MimeType": "image/png",
    "Flags": 65543,
    "Version": 1,
    "SignaturePatterns": [
      "iVBORw0KGgo="
    ],
    "SignatureMasks": [
      "//////////8="
    ]
  },
  {
    "Clsid": "557cf407-1a04-11d3-9a73-0000f81ef32e",
    "FormatID": "b96b3cb5-0728-11d3-9d7b-0000f81ef32e",
    "CodecName": "Built-in ICO Codec",
    "DllName": null,
    "FormatDescription": "ICO",
    "FilenameExtension": "*.ICO",
    "MimeType": "image/x-icon",
    "Flags": 65542,
    "Version": 1,
    "SignaturePatterns": [
      "AAABAA=="
    ],
    "SignatureMasks": [
      "/////w=="
    ]
  }
]

ImageCodecInfo.GetImageEncoders()

[
  {
    "Clsid": "557cf400-1a04-11d3-9a73-0000f81ef32e",
    "FormatID": "b96b3cab-0728-11d3-9d7b-0000f81ef32e",
    "CodecName": "Built-in BMP Codec",
    "DllName": null,
    "FormatDescription": "BMP",
    "FilenameExtension": "*.BMP;*.DIB;*.RLE",
    "MimeType": "image/bmp",
    "Flags": 65543,
    "Version": 1,
    "SignaturePatterns": [
      "Qk0="
    ],
    "SignatureMasks": [
      "//8="
    ]
  },
  {
    "Clsid": "557cf401-1a04-11d3-9a73-0000f81ef32e",
    "FormatID": "b96b3cae-0728-11d3-9d7b-0000f81ef32e",
    "CodecName": "Built-in JPEG Codec",
    "DllName": null,
    "FormatDescription": "JPEG",
    "FilenameExtension": "*.JPG;*.JPEG;*.JPE;*.JFIF",
    "MimeType": "image/jpeg",
    "Flags": 65543,
    "Version": 1,
    "SignaturePatterns": [
      "/9g="
    ],
    "SignatureMasks": [
      "//8="
    ]
  },
  {
    "Clsid": "557cf402-1a04-11d3-9a73-0000f81ef32e",
    "FormatID": "b96b3cb0-0728-11d3-9d7b-0000f81ef32e",
    "CodecName": "Built-in GIF Codec",
    "DllName": null,
    "FormatDescription": "GIF",
    "FilenameExtension": "*.GIF",
    "MimeType": "image/gif",
    "Flags": 65543,
    "Version": 1,
    "SignaturePatterns": [
      "R0lGODlh",
      "R0lGODdh"
    ],
    "SignatureMasks": [
      "////////",
      "////////"
    ]
  },
  {
    "Clsid": "557cf405-1a04-11d3-9a73-0000f81ef32e",
    "FormatID": "b96b3cb1-0728-11d3-9d7b-0000f81ef32e",
    "CodecName": "Built-in TIFF Codec",
    "DllName": null,
    "FormatDescription": "TIFF",
    "FilenameExtension": "*.TIF;*.TIFF",
    "MimeType": "image/tiff",
    "Flags": 65543,
    "Version": 1,
    "SignaturePatterns": [
      "SUk=",
      "TU0="
    ],
    "SignatureMasks": [
      "//8=",
      "//8="
    ]
  },
  {
    "Clsid": "557cf406-1a04-11d3-9a73-0000f81ef32e",
    "FormatID": "b96b3caf-0728-11d3-9d7b-0000f81ef32e",
    "CodecName": "Built-in PNG Codec",
    "DllName": null,
    "FormatDescription": "PNG",
    "FilenameExtension": "*.PNG",
    "MimeType": "image/png",
    "Flags": 65543,
    "Version": 1,
    "SignaturePatterns": [
      "iVBORw0KGgo="
    ],
    "SignatureMasks": [
      "//////////8="
    ]
  }
]