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="
    ]
  }
]

2017年9月19日火曜日

ODBC--範囲外のデータです

ODBC リンクテーブルの場合、

DoCmd.SetParameter "日付", CDbl(日付)
DoCmd.OpenQuery "クエリー"

でどうでしょう…

VB6 用、日付に関する便利関数



Public Function 先月初日() As Date
    Dim 先月 As Date
    Let 先月 = DateSerial(Year(Now), Month(Now), 1) - 1
    先月初日 = DateSerial(Year(先月), Month(先月), 1)
End Function

Public Function 先月末日() As Date
    Dim 初日 As Date
    先月末日 = DateSerial(Year(Now), Month(Now), 1) - 1
End Function

Public Function 今月初日() As Date
    今月初日 = DateSerial(Year(Now), Month(Now), 1)
End Function

Public Function 今月末日() As Date
    Dim 来月 As Date
    Let 来月 = DateSerial(Year(Now), Month(Now), 1) + 31
    今月末日 = DateSerial(Year(来月), Month(来月), 1) - 1
End Function