UWP アプリケーションをデバッグ実行したときにエラーで配置されたなかった時の原因と対処法

どのタイミングでそうなったのかわからなかったのですが、表題の通り VS2019 で新規で UWP プロジェクトを作成して実行してもエラーで実行できませんでした。Windows を再起動してもダメ。

とりあえずネットで探して以下のページで紹介されている内容で対応しました、

]]>

ASP.NET アプリケーションをデバッグ実行したときに「AspAccessCheck~.tmp」へのアクセス拒否のエラーに対処する

メモ書きです。

環境

  • Visual Studio 2013
  • .NET Framework 4.5

内容

原因がよくわかっていないのですが、Visual Studio で ASP.NET アプリケーションをデバッグ実行したときに以下のエラー(例外)が表示されて、その後の処理が正常に行われない現象が発生する場合があります。

型 'System.UnauthorizedAccessException' の初回例外が mscorlib.dll で発生しました

追加情報:パス 'C:WindowsMicrosoft.NETFrameworkv4.0.30319Temporary ASP.NET Files~AspAccessCheck_71d98a9c21352.tmp' へのアクセスが拒否されました。

※「71d98a9c21352」はたぶん一時的に決められた値

これを解決するには「C:WindowsMicrosoft.NETFrameworkv4.0.30319」フォルダにある「Temporary ASP.NET Files」フォルダを削除してしまいます。たぶんフォルダの中には何も入っていないはずです。削除後デバッグ実行すると正常に動作する場合があります。(実行しても Temporary ASP.NET Files フォルダは作成されないようです)

]]>

SQL Server Reporting Services で登録されているサブスクリプションを一括実行する SQL

概要

サブスクリプションは登録したスケジュールに従って自動的に実行されますが、任意のタイミングで一括実行したい場合もあるかと思います。ここではそれを行うための実行 SQL を載せています。

注意

この記事の内容はすべての環境で実行を保証しているわけではありません。また公式でサポートしている内容でもありませんので自己責任でお使いください。

動作確認環境

  • SQL Server 2008 Standard SP3

実行 SQL

-- SubscriptionID を入れる変数
declare @id as uniqueidentifier
-- ReportServer データベースの Subscriptions テーブルから登録されている
-- サブスクリプション ID 一覧を取得
declare NEW_cursor cursor for
select SubscriptionID
from ReportServer.dbo.Subscriptions
-- カーソルオープン
open NEW_cursor
-- FETCH スタート
fetch next from NEW_cursor
into @id
while @@FETCH_STATUS = 0
begin
  -- サブスクリプションの実行イベント追加 (非同期)
  exec ReportServer.dbo.AddEvent @EventType='TimedSubscription', @EventData=@id
  -- 次の ID へ
  fetch next from NEW_cursor
  into @id
end
-- カーソルクローズ
close NEW_cursor
deallocate NEW_cursor

補足

この SQL はあくまでもイベントを登録しているだけなので即座にサブスクリプションの内容が実行されるわけではありません(非同期)。この SQL を実行すればサブスクリプションの実行内容がすべて完了しているものと思い込んでしまうと、次の処理を実行たときに、実はまだ処理が完了していなかった、なんてことになりかねないので注意してください。

]]>

Oracle で OUT引数のあるストアドプロシージャを呼び出すときの引数の指定の仕方

【環境】

  • Oracle 10g Release 2

【内容】

OUT 引数によって変数に値を返す場合は、呼び出し側の OUT 引数の前に「:(コロン)」を追加します。

■例1(out 引数が一番最後にある場合)

・ストアド側 (定義)

StoredFunction(arg1 in varchar2, arg2 in varchar2 arg3 out varchar2)

・呼び出し側

variable argA varchar2(255)
variable argB varchar2(255)
variable argC varchar2(255)
execute StoredFunction(argA, argB, :argC)

■例2(out 引数が一番最初にある場合)

・ストアド側 (定義)

StoredFunction(arg1 out varchar2, arg2 in varchar2 arg3 in varchar2)

・呼び出し側

variable argA varchar2(255)
variable argB varchar2(255)
variable argC varchar2(255)
execute StoredFunction(:argA, argB, argC)

■例3(out 引数が複数ある場合)

・ストアド側 (定義)

StoredFunction(arg1 out varchar2, arg2 in varchar2 arg3 out varchar2)

・呼び出し側

variable argA varchar2(255)
variable argB varchar2(255)
variable argC varchar2(255)
execute StoredFunction(:argA, argB, :argC)
]]>

Windows ログオン時にアプリケーションを管理者権限で実行する方法

メモです。Windows Vista, Windows 7 のお話。

アプリケーションをWindows ログオン後に実行させる場合は「スタートアップ」フォルダに入れておけば自動的に実行されますが、管理者権限で実行することはできません。(管理者権限必須アプリケーションの場合、もしかしたら昇格ダイアログが表示されるかも?)

Windows ログオン後に自動的に管理者権限でアプリケーションで起動させたい場合は「タスク スケジューラー」を使用します。

  1. 「スタートメニュー」⇒「アクセサリ」⇒「システム ツール」⇒「タスク スケジューラー」を起動
  2. タスク スケジューラーが起動したら「操作」メニューから「基本タスクの作成」を選択
  3. 名前や説明は適当に設定し、起動トリガを「ログオン時」に設定
  4. 操作は「プログラムの開始」に設定し、プログラムの起動で起動したい実行ファイルのパスを指定します。引数はアプリケーションによって任意に設定してください。
  5. 作成したタスクをダブルクリックして開き、「全般」タブから「最上位の特権で実行する」にチェックをいれます。

「基本タスクの作成」ではなく「タスクの作成」から作成を行った場合でも、最初から詳細設定が表示されるだけで設定できる内容に違いはありません。「基本タスクの作成」はウィザード形式、「タスクの作成」は詳細設定形式と考えていいです。

]]>