This commit is contained in:
2026-05-10 17:16:45 +02:00
commit 0b2eefc450
135 changed files with 6526 additions and 0 deletions
+30
View File
@@ -0,0 +1,30 @@
**/.classpath
**/.dockerignore
**/.env
**/.git
**/.gitignore
**/.project
**/.settings
**/.toolstarget
**/.vs
**/.vscode
**/*.*proj.user
**/*.dbmdl
**/*.jfm
**/azds.yaml
**/bin
**/charts
**/docker-compose*
**/Dockerfile*
**/node_modules
**/npm-debug.log
**/obj
**/secrets.dev.yaml
**/values.dev.yaml
LICENSE
README.md
!**/.gitignore
!.git/HEAD
!.git/config
!.git/packed-refs
!.git/refs/heads/**
@@ -0,0 +1,974 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
IIS configuration sections.
For schema documentation, see
%IIS_BIN%\config\schema\IIS_schema.xml.
Please make a backup of this file before making any changes to it.
NOTE: The following environment variables are available to be used
within this file and are understood by the IIS Express.
%IIS_USER_HOME% - The IIS Express home directory for the user
%IIS_SITES_HOME% - The default home directory for sites
%IIS_BIN% - The location of the IIS Express binaries
%SYSTEMDRIVE% - The drive letter of %IIS_BIN%
-->
<configuration>
<!--
The <configSections> section controls the registration of sections.
Section is the basic unit of deployment, locking, searching and
containment for configuration settings.
Every section belongs to one section group.
A section group is a container of logically-related sections.
Sections cannot be nested.
Section groups may be nested.
<section
name="" [Required, Collection Key] [XML name of the section]
allowDefinition="Everywhere" [MachineOnly|MachineToApplication|AppHostOnly|Everywhere] [Level where it can be set]
overrideModeDefault="Allow" [Allow|Deny] [Default delegation mode]
allowLocation="true" [true|false] [Allowed in location tags]
/>
The recommended way to unlock sections is by using a location tag:
<location path="Default Web Site" overrideMode="Allow">
<system.webServer>
<asp />
</system.webServer>
</location>
-->
<configSections>
<sectionGroup name="system.applicationHost">
<section name="applicationPools" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
<section name="configHistory" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
<section name="customMetadata" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
<section name="listenerAdapters" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
<section name="log" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
<section name="serviceAutoStartProviders" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
<section name="sites" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
<section name="webLimits" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
</sectionGroup>
<sectionGroup name="system.webServer">
<section name="asp" overrideModeDefault="Deny" />
<section name="caching" overrideModeDefault="Allow" />
<section name="cgi" overrideModeDefault="Deny" />
<section name="defaultDocument" overrideModeDefault="Allow" />
<section name="directoryBrowse" overrideModeDefault="Allow" />
<section name="fastCgi" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
<section name="globalModules" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
<section name="handlers" overrideModeDefault="Deny" />
<section name="httpCompression" overrideModeDefault="Allow" allowDefinition="Everywhere" />
<section name="httpErrors" overrideModeDefault="Allow" />
<section name="httpLogging" overrideModeDefault="Deny" />
<section name="httpProtocol" overrideModeDefault="Allow" />
<section name="httpRedirect" overrideModeDefault="Allow" />
<section name="httpTracing" overrideModeDefault="Deny" />
<section name="isapiFilters" allowDefinition="MachineToApplication" overrideModeDefault="Deny" />
<section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" />
<section name="applicationInitialization" allowDefinition="MachineToApplication" overrideModeDefault="Allow" />
<section name="odbcLogging" overrideModeDefault="Deny" />
<sectionGroup name="security">
<section name="access" overrideModeDefault="Deny" />
<section name="applicationDependencies" overrideModeDefault="Deny" />
<sectionGroup name="authentication">
<section name="anonymousAuthentication" overrideModeDefault="Deny" />
<section name="basicAuthentication" overrideModeDefault="Deny" />
<section name="clientCertificateMappingAuthentication" overrideModeDefault="Deny" />
<section name="digestAuthentication" overrideModeDefault="Deny" />
<section name="iisClientCertificateMappingAuthentication" overrideModeDefault="Deny" />
<section name="windowsAuthentication" overrideModeDefault="Deny" />
</sectionGroup>
<section name="authorization" overrideModeDefault="Allow" />
<section name="ipSecurity" overrideModeDefault="Deny" />
<section name="dynamicIpSecurity" overrideModeDefault="Deny" />
<section name="isapiCgiRestriction" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
<section name="requestFiltering" overrideModeDefault="Allow" />
</sectionGroup>
<section name="serverRuntime" overrideModeDefault="Deny" />
<section name="serverSideInclude" overrideModeDefault="Deny" />
<section name="staticContent" overrideModeDefault="Allow" />
<sectionGroup name="tracing">
<section name="traceFailedRequests" overrideModeDefault="Allow" />
<section name="traceProviderDefinitions" overrideModeDefault="Deny" />
</sectionGroup>
<section name="urlCompression" overrideModeDefault="Allow" />
<section name="validation" overrideModeDefault="Allow" />
<sectionGroup name="webdav">
<section name="globalSettings" overrideModeDefault="Deny" />
<section name="authoring" overrideModeDefault="Deny" />
<section name="authoringRules" overrideModeDefault="Deny" />
</sectionGroup>
<sectionGroup name="rewrite">
<section name="allowedServerVariables" overrideModeDefault="Deny" />
<section name="rules" overrideModeDefault="Allow" />
<section name="outboundRules" overrideModeDefault="Allow" />
<section name="globalRules" overrideModeDefault="Deny" allowDefinition="AppHostOnly" />
<section name="providers" overrideModeDefault="Allow" />
<section name="rewriteMaps" overrideModeDefault="Allow" />
</sectionGroup>
<section name="webSocket" overrideModeDefault="Deny" />
<section name="aspNetCore" overrideModeDefault="Allow" /></sectionGroup>
</configSections>
<configProtectedData>
<providers>
<add name="IISWASOnlyRsaProvider" type="" description="Uses RsaCryptoServiceProvider to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useMachineContainer="true" useOAEP="false" />
<add name="AesProvider" type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider" description="Uses an AES session key to encrypt and decrypt" keyContainerName="iisConfigurationKey" cspProviderName="" useOAEP="false" useMachineContainer="true" sessionKey="AQIAAA5mAAAApAAA/HKxkz6alrlAPez0IUgujj/6k3WxCDriHp6jvpv3yEZmo7h6SMzGLxo4mTrIQVHSkB7tmElHKfUFTzE2BWF7nFWHY6Z6qmGBauFzwJMwESjril7Gjz69RBFH259HQ6aRDq9Xfx7U7H4HtdmnKNqGjgl/hwPQBGeIlWiDh+sYv3vKB0QU971tjX6H2B+9armlnC8UOuA6JYMDMI/VLLL16sng0fWAy5JYe0YVABVjiAWDW264RZW9Tr1Oax4qHZKg+SdjULxeOc2YmpX+d0yeITo1HkPF1hN1gHpIPIUDo05ilHUNfR3OkjVCIQK4cFKCq1s8NH+y+13MxUC4Fn1AlQ==" />
<add name="IISWASOnlyAesProvider" type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider" description="Uses an AES session key to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useOAEP="false" useMachineContainer="true" sessionKey="AQIAAA5mAAAApAAALmU8lTC+v2qtfQiiiquvvLpUQqKLEXs+jSKoWCM/uPhyB++k4dwug19mGidNK5FYiWK2KYE1yhjVJcbp12E98Q0R2nT7eBiCMY2JairxQ591rqABK7keGaIjwH7PwGzSpILl3RJ4YFvJ/7ZXEJxeDZIjW8ZxWVXx+/VyHs9U3WguLEkgMUX3jrxJi8LouxaIVPJAv/YQ1ZCWs8zImitxX/C/7o7yaIxznfsN5nGQzQfpUDPeby99aw2zPVTtZI2LaWIBON8guABvZ6JtJVDWmfdK6sodbnwdZkr6/Z2rfvamT1dC1SpQrGG7ulR/f9/GXvCaW10ZVKxekBF/CYlNMg==" />
</providers>
</configProtectedData>
<system.applicationHost>
<applicationPools>
<add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
<add name="Clr4ClassicAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
<add name="Clr2IntegratedAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
<add name="Clr2ClassicAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
<add name="UnmanagedClassicAppPool" managedRuntimeVersion="" managedPipelineMode="Classic" autoStart="true" />
<applicationPoolDefaults managedRuntimeVersion="v4.0">
<processModel loadUserProfile="true" setProfileEnvironment="false" />
</applicationPoolDefaults>
</applicationPools>
<!--
The <listenerAdapters> section defines the protocols with which the
Windows Process Activation Service (WAS) binds.
-->
<listenerAdapters>
<add name="http" />
</listenerAdapters>
<sites>
<site name="WebSite1" id="1" serverAutoStart="true">
<application path="/">
<virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
</application>
<bindings>
<binding protocol="http" bindingInformation=":8080:localhost" />
</bindings>
</site>
<siteDefaults>
<!-- To enable logging, please change the below attribute "enabled" to "true" -->
<logFile logFormat="W3C" directory="%AppData%\Microsoft\IISExpressLogs" enabled="false" />
<traceFailedRequestsLogging directory="%AppData%\Microsoft" enabled="false" maxLogFileSizeKB="1024" />
</siteDefaults>
<applicationDefaults applicationPool="Clr4IntegratedAppPool" />
<virtualDirectoryDefaults allowSubDirConfig="true" />
</sites>
<webLimits />
</system.applicationHost>
<system.webServer>
<serverRuntime />
<asp scriptErrorSentToBrowser="true">
<cache diskTemplateCacheDirectory="%TEMP%\iisexpress\ASP Compiled Templates" />
<limits />
</asp>
<caching enabled="true" enableKernelCache="true">
</caching>
<cgi />
<defaultDocument enabled="true">
<files>
<add value="Default.htm" />
<add value="Default.asp" />
<add value="index.htm" />
<add value="index.html" />
<add value="iisstart.htm" />
<add value="default.aspx" />
</files>
</defaultDocument>
<directoryBrowse enabled="false" />
<fastCgi />
<!--
The <globalModules> section defines all native-code modules.
To enable a module, specify it in the <modules> section.
-->
<globalModules>
<add name="HttpLoggingModule" image="%IIS_BIN%\loghttp.dll" />
<add name="UriCacheModule" image="%IIS_BIN%\cachuri.dll" />
<add name="TokenCacheModule" image="%IIS_BIN%\cachtokn.dll" />
<add name="DynamicCompressionModule" image="%IIS_BIN%\compdyn.dll" />
<add name="StaticCompressionModule" image="%IIS_BIN%\compstat.dll" />
<add name="DefaultDocumentModule" image="%IIS_BIN%\defdoc.dll" />
<add name="DirectoryListingModule" image="%IIS_BIN%\dirlist.dll" />
<add name="ProtocolSupportModule" image="%IIS_BIN%\protsup.dll" />
<add name="HttpRedirectionModule" image="%IIS_BIN%\redirect.dll" />
<add name="ServerSideIncludeModule" image="%IIS_BIN%\iis_ssi.dll" />
<add name="StaticFileModule" image="%IIS_BIN%\static.dll" />
<add name="AnonymousAuthenticationModule" image="%IIS_BIN%\authanon.dll" />
<add name="CertificateMappingAuthenticationModule" image="%IIS_BIN%\authcert.dll" />
<add name="UrlAuthorizationModule" image="%IIS_BIN%\urlauthz.dll" />
<add name="BasicAuthenticationModule" image="%IIS_BIN%\authbas.dll" />
<add name="WindowsAuthenticationModule" image="%IIS_BIN%\authsspi.dll" />
<add name="IISCertificateMappingAuthenticationModule" image="%IIS_BIN%\authmap.dll" />
<add name="IpRestrictionModule" image="%IIS_BIN%\iprestr.dll" />
<add name="DynamicIpRestrictionModule" image="%IIS_BIN%\diprestr.dll" />
<add name="RequestFilteringModule" image="%IIS_BIN%\modrqflt.dll" />
<add name="CustomLoggingModule" image="%IIS_BIN%\logcust.dll" />
<add name="CustomErrorModule" image="%IIS_BIN%\custerr.dll" />
<add name="FailedRequestsTracingModule" image="%IIS_BIN%\iisfreb.dll" />
<add name="RequestMonitorModule" image="%IIS_BIN%\iisreqs.dll" />
<add name="IsapiModule" image="%IIS_BIN%\isapi.dll" />
<add name="IsapiFilterModule" image="%IIS_BIN%\filter.dll" />
<add name="CgiModule" image="%IIS_BIN%\cgi.dll" />
<add name="FastCgiModule" image="%IIS_BIN%\iisfcgi.dll" />
<!-- <add name="WebDAVModule" image="%IIS_BIN%\webdav.dll" /> -->
<add name="RewriteModule" image="%IIS_BIN%\rewrite.dll" />
<add name="ConfigurationValidationModule" image="%IIS_BIN%\validcfg.dll" />
<add name="WebSocketModule" image="%IIS_BIN%\iiswsock.dll" />
<add name="WebMatrixSupportModule" image="%IIS_BIN%\webmatrixsup.dll" />
<add name="ManagedEngine" image="%windir%\Microsoft.NET\Framework\v2.0.50727\webengine.dll" preCondition="integratedMode,runtimeVersionv2.0,bitness32" />
<add name="ManagedEngine64" image="%windir%\Microsoft.NET\Framework64\v2.0.50727\webengine.dll" preCondition="integratedMode,runtimeVersionv2.0,bitness64" />
<add name="ManagedEngineV4.0_32bit" image="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness32" />
<add name="ManagedEngineV4.0_64bit" image="%windir%\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness64" />
<add name="ApplicationInitializationModule" image="%IIS_BIN%\warmup.dll" />
<add name="AspNetCoreModule" image="%IIS_BIN%\aspnetcore.dll" />
<add name="AspNetCoreModuleV2" image="%IIS_BIN%\Asp.Net Core Module\V2\aspnetcorev2.dll" />
</globalModules>
<httpCompression directory="%TEMP%">
<scheme name="gzip" dll="%IIS_BIN%\gzip.dll" />
<dynamicTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="application/javascript" enabled="true" />
<add mimeType="*/*" enabled="false" />
<add mimeType="text/event-stream" enabled="false" />
</dynamicTypes>
<staticTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/javascript" enabled="true" />
<add mimeType="application/atom+xml" enabled="true" />
<add mimeType="application/xaml+xml" enabled="true" />
<add mimeType="image/svg+xml" enabled="true" />
<add mimeType="*/*" enabled="false" />
</staticTypes>
</httpCompression>
<httpErrors lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath">
<error statusCode="401" prefixLanguageFilePath="%IIS_BIN%\custerr" path="401.htm" />
<error statusCode="403" prefixLanguageFilePath="%IIS_BIN%\custerr" path="403.htm" />
<error statusCode="404" prefixLanguageFilePath="%IIS_BIN%\custerr" path="404.htm" />
<error statusCode="405" prefixLanguageFilePath="%IIS_BIN%\custerr" path="405.htm" />
<error statusCode="406" prefixLanguageFilePath="%IIS_BIN%\custerr" path="406.htm" />
<error statusCode="412" prefixLanguageFilePath="%IIS_BIN%\custerr" path="412.htm" />
<error statusCode="500" prefixLanguageFilePath="%IIS_BIN%\custerr" path="500.htm" />
<error statusCode="501" prefixLanguageFilePath="%IIS_BIN%\custerr" path="501.htm" />
<error statusCode="502" prefixLanguageFilePath="%IIS_BIN%\custerr" path="502.htm" />
</httpErrors>
<httpLogging dontLog="false" />
<httpProtocol>
<customHeaders>
<clear />
<add name="X-Powered-By" value="ASP.NET" />
</customHeaders>
<redirectHeaders>
<clear />
</redirectHeaders>
</httpProtocol>
<httpRedirect enabled="false" />
<httpTracing />
<isapiFilters>
<filter name="ASP.Net_2.0.50727-64" path="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness64,runtimeVersionv2.0" />
<filter name="ASP.Net_2.0.50727.0" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv2.0" />
<filter name="ASP.Net_2.0_for_v1.1" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="runtimeVersionv1.1" />
<filter name="ASP.Net_4.0_32bit" path="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv4.0" />
<filter name="ASP.Net_4.0_64bit" path="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="bitness64,runtimeVersionv4.0" />
</isapiFilters>
<odbcLogging />
<security>
<access sslFlags="None" />
<applicationDependencies>
<application name="Active Server Pages" groupId="ASP" />
</applicationDependencies>
<authentication>
<anonymousAuthentication enabled="true" userName="" />
<basicAuthentication enabled="false" />
<clientCertificateMappingAuthentication enabled="false" />
<digestAuthentication enabled="false" />
<iisClientCertificateMappingAuthentication enabled="false">
</iisClientCertificateMappingAuthentication>
<windowsAuthentication enabled="false">
<providers>
<add value="Negotiate" />
<add value="NTLM" />
</providers>
</windowsAuthentication>
</authentication>
<authorization>
<add accessType="Allow" users="*" />
</authorization>
<ipSecurity allowUnlisted="true" />
<isapiCgiRestriction notListedIsapisAllowed="true" notListedCgisAllowed="true">
<add path="%windir%\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" allowed="true" groupId="ASP.NET_v4.0" description="ASP.NET_v4.0" />
<add path="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" allowed="true" groupId="ASP.NET_v4.0" description="ASP.NET_v4.0" />
<add path="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" allowed="true" groupId="ASP.NET v2.0.50727" description="ASP.NET v2.0.50727" />
<add path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" allowed="true" groupId="ASP.NET v2.0.50727" description="ASP.NET v2.0.50727" />
</isapiCgiRestriction>
<requestFiltering>
<fileExtensions allowUnlisted="true" applyToWebDAV="true">
<add fileExtension=".asa" allowed="false" />
<add fileExtension=".asax" allowed="false" />
<add fileExtension=".ascx" allowed="false" />
<add fileExtension=".master" allowed="false" />
<add fileExtension=".skin" allowed="false" />
<add fileExtension=".browser" allowed="false" />
<add fileExtension=".sitemap" allowed="false" />
<add fileExtension=".config" allowed="false" />
<add fileExtension=".cs" allowed="false" />
<add fileExtension=".csproj" allowed="false" />
<add fileExtension=".vb" allowed="false" />
<add fileExtension=".vbproj" allowed="false" />
<add fileExtension=".webinfo" allowed="false" />
<add fileExtension=".licx" allowed="false" />
<add fileExtension=".resx" allowed="false" />
<add fileExtension=".resources" allowed="false" />
<add fileExtension=".mdb" allowed="false" />
<add fileExtension=".vjsproj" allowed="false" />
<add fileExtension=".java" allowed="false" />
<add fileExtension=".jsl" allowed="false" />
<add fileExtension=".ldb" allowed="false" />
<add fileExtension=".dsdgm" allowed="false" />
<add fileExtension=".ssdgm" allowed="false" />
<add fileExtension=".lsad" allowed="false" />
<add fileExtension=".ssmap" allowed="false" />
<add fileExtension=".cd" allowed="false" />
<add fileExtension=".dsprototype" allowed="false" />
<add fileExtension=".lsaprototype" allowed="false" />
<add fileExtension=".sdm" allowed="false" />
<add fileExtension=".sdmDocument" allowed="false" />
<add fileExtension=".mdf" allowed="false" />
<add fileExtension=".ldf" allowed="false" />
<add fileExtension=".ad" allowed="false" />
<add fileExtension=".dd" allowed="false" />
<add fileExtension=".ldd" allowed="false" />
<add fileExtension=".sd" allowed="false" />
<add fileExtension=".adprototype" allowed="false" />
<add fileExtension=".lddprototype" allowed="false" />
<add fileExtension=".exclude" allowed="false" />
<add fileExtension=".refresh" allowed="false" />
<add fileExtension=".compiled" allowed="false" />
<add fileExtension=".msgx" allowed="false" />
<add fileExtension=".vsdisco" allowed="false" />
<add fileExtension=".rules" allowed="false" />
</fileExtensions>
<verbs allowUnlisted="true" applyToWebDAV="true" />
<hiddenSegments applyToWebDAV="true">
<add segment="web.config" />
<add segment="bin" />
<add segment="App_code" />
<add segment="App_GlobalResources" />
<add segment="App_LocalResources" />
<add segment="App_WebReferences" />
<add segment="App_Data" />
<add segment="App_Browsers" />
</hiddenSegments>
</requestFiltering>
</security>
<serverSideInclude ssiExecDisable="false" />
<staticContent lockAttributes="isDocFooterFileName">
<mimeMap fileExtension=".323" mimeType="text/h323" />
<mimeMap fileExtension=".3g2" mimeType="video/3gpp2" />
<mimeMap fileExtension=".3gp2" mimeType="video/3gpp2" />
<mimeMap fileExtension=".3gp" mimeType="video/3gpp" />
<mimeMap fileExtension=".3gpp" mimeType="video/3gpp" />
<mimeMap fileExtension=".aac" mimeType="audio/aac" />
<mimeMap fileExtension=".aaf" mimeType="application/octet-stream" />
<mimeMap fileExtension=".aca" mimeType="application/octet-stream" />
<mimeMap fileExtension=".accdb" mimeType="application/msaccess" />
<mimeMap fileExtension=".accde" mimeType="application/msaccess" />
<mimeMap fileExtension=".accdt" mimeType="application/msaccess" />
<mimeMap fileExtension=".acx" mimeType="application/internet-property-stream" />
<mimeMap fileExtension=".adt" mimeType="audio/vnd.dlna.adts" />
<mimeMap fileExtension=".adts" mimeType="audio/vnd.dlna.adts" />
<mimeMap fileExtension=".afm" mimeType="application/octet-stream" />
<mimeMap fileExtension=".ai" mimeType="application/postscript" />
<mimeMap fileExtension=".aif" mimeType="audio/x-aiff" />
<mimeMap fileExtension=".aifc" mimeType="audio/aiff" />
<mimeMap fileExtension=".aiff" mimeType="audio/aiff" />
<mimeMap fileExtension=".appcache" mimeType="text/cache-manifest" />
<mimeMap fileExtension=".application" mimeType="application/x-ms-application" />
<mimeMap fileExtension=".art" mimeType="image/x-jg" />
<mimeMap fileExtension=".asd" mimeType="application/octet-stream" />
<mimeMap fileExtension=".asf" mimeType="video/x-ms-asf" />
<mimeMap fileExtension=".asi" mimeType="application/octet-stream" />
<mimeMap fileExtension=".asm" mimeType="text/plain" />
<mimeMap fileExtension=".asr" mimeType="video/x-ms-asf" />
<mimeMap fileExtension=".asx" mimeType="video/x-ms-asf" />
<mimeMap fileExtension=".atom" mimeType="application/atom+xml" />
<mimeMap fileExtension=".au" mimeType="audio/basic" />
<mimeMap fileExtension=".avi" mimeType="video/avi" />
<mimeMap fileExtension=".axs" mimeType="application/olescript" />
<mimeMap fileExtension=".bas" mimeType="text/plain" />
<mimeMap fileExtension=".bcpio" mimeType="application/x-bcpio" />
<mimeMap fileExtension=".bin" mimeType="application/octet-stream" />
<mimeMap fileExtension=".bmp" mimeType="image/bmp" />
<mimeMap fileExtension=".c" mimeType="text/plain" />
<mimeMap fileExtension=".cab" mimeType="application/vnd.ms-cab-compressed" />
<mimeMap fileExtension=".calx" mimeType="application/vnd.ms-office.calx" />
<mimeMap fileExtension=".cat" mimeType="application/vnd.ms-pki.seccat" />
<mimeMap fileExtension=".cdf" mimeType="application/x-cdf" />
<mimeMap fileExtension=".chm" mimeType="application/octet-stream" />
<mimeMap fileExtension=".class" mimeType="application/x-java-applet" />
<mimeMap fileExtension=".clp" mimeType="application/x-msclip" />
<mimeMap fileExtension=".cmx" mimeType="image/x-cmx" />
<mimeMap fileExtension=".cnf" mimeType="text/plain" />
<mimeMap fileExtension=".cod" mimeType="image/cis-cod" />
<mimeMap fileExtension=".cpio" mimeType="application/x-cpio" />
<mimeMap fileExtension=".cpp" mimeType="text/plain" />
<mimeMap fileExtension=".crd" mimeType="application/x-mscardfile" />
<mimeMap fileExtension=".crl" mimeType="application/pkix-crl" />
<mimeMap fileExtension=".crt" mimeType="application/x-x509-ca-cert" />
<mimeMap fileExtension=".csh" mimeType="application/x-csh" />
<mimeMap fileExtension=".css" mimeType="text/css" />
<mimeMap fileExtension=".csv" mimeType="application/octet-stream" />
<mimeMap fileExtension=".cur" mimeType="application/octet-stream" />
<mimeMap fileExtension=".dcr" mimeType="application/x-director" />
<mimeMap fileExtension=".deploy" mimeType="application/octet-stream" />
<mimeMap fileExtension=".der" mimeType="application/x-x509-ca-cert" />
<mimeMap fileExtension=".dib" mimeType="image/bmp" />
<mimeMap fileExtension=".dir" mimeType="application/x-director" />
<mimeMap fileExtension=".disco" mimeType="text/xml" />
<mimeMap fileExtension=".dll" mimeType="application/x-msdownload" />
<mimeMap fileExtension=".dll.config" mimeType="text/xml" />
<mimeMap fileExtension=".dlm" mimeType="text/dlm" />
<mimeMap fileExtension=".doc" mimeType="application/msword" />
<mimeMap fileExtension=".docm" mimeType="application/vnd.ms-word.document.macroEnabled.12" />
<mimeMap fileExtension=".docx" mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.document" />
<mimeMap fileExtension=".dot" mimeType="application/msword" />
<mimeMap fileExtension=".dotm" mimeType="application/vnd.ms-word.template.macroEnabled.12" />
<mimeMap fileExtension=".dotx" mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.template" />
<mimeMap fileExtension=".dsp" mimeType="application/octet-stream" />
<mimeMap fileExtension=".dtd" mimeType="text/xml" />
<mimeMap fileExtension=".dvi" mimeType="application/x-dvi" />
<mimeMap fileExtension=".dvr-ms" mimeType="video/x-ms-dvr" />
<mimeMap fileExtension=".dwf" mimeType="drawing/x-dwf" />
<mimeMap fileExtension=".dwp" mimeType="application/octet-stream" />
<mimeMap fileExtension=".dxr" mimeType="application/x-director" />
<mimeMap fileExtension=".eml" mimeType="message/rfc822" />
<mimeMap fileExtension=".emz" mimeType="application/octet-stream" />
<mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" />
<mimeMap fileExtension=".eps" mimeType="application/postscript" />
<mimeMap fileExtension=".esd" mimeType="application/vnd.ms-cab-compressed" />
<mimeMap fileExtension=".etx" mimeType="text/x-setext" />
<mimeMap fileExtension=".evy" mimeType="application/envoy" />
<mimeMap fileExtension=".exe" mimeType="application/octet-stream" />
<mimeMap fileExtension=".exe.config" mimeType="text/xml" />
<mimeMap fileExtension=".fdf" mimeType="application/vnd.fdf" />
<mimeMap fileExtension=".fif" mimeType="application/fractals" />
<mimeMap fileExtension=".fla" mimeType="application/octet-stream" />
<mimeMap fileExtension=".flr" mimeType="x-world/x-vrml" />
<mimeMap fileExtension=".flv" mimeType="video/x-flv" />
<mimeMap fileExtension=".gif" mimeType="image/gif" />
<mimeMap fileExtension=".glb" mimeType="model/gltf-binary" />
<mimeMap fileExtension=".gtar" mimeType="application/x-gtar" />
<mimeMap fileExtension=".gz" mimeType="application/x-gzip" />
<mimeMap fileExtension=".h" mimeType="text/plain" />
<mimeMap fileExtension=".hdf" mimeType="application/x-hdf" />
<mimeMap fileExtension=".hdml" mimeType="text/x-hdml" />
<mimeMap fileExtension=".hhc" mimeType="application/x-oleobject" />
<mimeMap fileExtension=".hhk" mimeType="application/octet-stream" />
<mimeMap fileExtension=".hhp" mimeType="application/octet-stream" />
<mimeMap fileExtension=".hlp" mimeType="application/winhlp" />
<mimeMap fileExtension=".hqx" mimeType="application/mac-binhex40" />
<mimeMap fileExtension=".hta" mimeType="application/hta" />
<mimeMap fileExtension=".htc" mimeType="text/x-component" />
<mimeMap fileExtension=".htm" mimeType="text/html" />
<mimeMap fileExtension=".html" mimeType="text/html" />
<mimeMap fileExtension=".htt" mimeType="text/webviewhtml" />
<mimeMap fileExtension=".hxt" mimeType="text/html" />
<mimeMap fileExtension=".ico" mimeType="image/x-icon" />
<mimeMap fileExtension=".ics" mimeType="text/calendar" />
<mimeMap fileExtension=".ief" mimeType="image/ief" />
<mimeMap fileExtension=".iii" mimeType="application/x-iphone" />
<mimeMap fileExtension=".inf" mimeType="application/octet-stream" />
<mimeMap fileExtension=".ins" mimeType="application/x-internet-signup" />
<mimeMap fileExtension=".isp" mimeType="application/x-internet-signup" />
<mimeMap fileExtension=".IVF" mimeType="video/x-ivf" />
<mimeMap fileExtension=".jar" mimeType="application/java-archive" />
<mimeMap fileExtension=".java" mimeType="application/octet-stream" />
<mimeMap fileExtension=".jck" mimeType="application/liquidmotion" />
<mimeMap fileExtension=".jcz" mimeType="application/liquidmotion" />
<mimeMap fileExtension=".jfif" mimeType="image/pjpeg" />
<mimeMap fileExtension=".jpb" mimeType="application/octet-stream" />
<mimeMap fileExtension=".jpe" mimeType="image/jpeg" />
<mimeMap fileExtension=".jpeg" mimeType="image/jpeg" />
<mimeMap fileExtension=".jpg" mimeType="image/jpeg" />
<mimeMap fileExtension=".js" mimeType="application/javascript" />
<mimeMap fileExtension=".json" mimeType="application/json" />
<mimeMap fileExtension=".jsonld" mimeType="application/ld+json" />
<mimeMap fileExtension=".jsx" mimeType="text/jscript" />
<mimeMap fileExtension=".latex" mimeType="application/x-latex" />
<mimeMap fileExtension=".less" mimeType="text/css" />
<mimeMap fileExtension=".lit" mimeType="application/x-ms-reader" />
<mimeMap fileExtension=".lpk" mimeType="application/octet-stream" />
<mimeMap fileExtension=".lsf" mimeType="video/x-la-asf" />
<mimeMap fileExtension=".lsx" mimeType="video/x-la-asf" />
<mimeMap fileExtension=".lzh" mimeType="application/octet-stream" />
<mimeMap fileExtension=".m13" mimeType="application/x-msmediaview" />
<mimeMap fileExtension=".m14" mimeType="application/x-msmediaview" />
<mimeMap fileExtension=".m1v" mimeType="video/mpeg" />
<mimeMap fileExtension=".m2ts" mimeType="video/vnd.dlna.mpeg-tts" />
<mimeMap fileExtension=".m3u" mimeType="audio/x-mpegurl" />
<mimeMap fileExtension=".m4a" mimeType="audio/mp4" />
<mimeMap fileExtension=".m4v" mimeType="video/mp4" />
<mimeMap fileExtension=".man" mimeType="application/x-troff-man" />
<mimeMap fileExtension=".manifest" mimeType="application/x-ms-manifest" />
<mimeMap fileExtension=".map" mimeType="text/plain" />
<mimeMap fileExtension=".mdb" mimeType="application/x-msaccess" />
<mimeMap fileExtension=".mdp" mimeType="application/octet-stream" />
<mimeMap fileExtension=".me" mimeType="application/x-troff-me" />
<mimeMap fileExtension=".mht" mimeType="message/rfc822" />
<mimeMap fileExtension=".mhtml" mimeType="message/rfc822" />
<mimeMap fileExtension=".mid" mimeType="audio/mid" />
<mimeMap fileExtension=".midi" mimeType="audio/mid" />
<mimeMap fileExtension=".mix" mimeType="application/octet-stream" />
<mimeMap fileExtension=".mmf" mimeType="application/x-smaf" />
<mimeMap fileExtension=".mno" mimeType="text/xml" />
<mimeMap fileExtension=".mny" mimeType="application/x-msmoney" />
<mimeMap fileExtension=".mov" mimeType="video/quicktime" />
<mimeMap fileExtension=".movie" mimeType="video/x-sgi-movie" />
<mimeMap fileExtension=".mp2" mimeType="video/mpeg" />
<mimeMap fileExtension=".mp3" mimeType="audio/mpeg" />
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
<mimeMap fileExtension=".mp4v" mimeType="video/mp4" />
<mimeMap fileExtension=".mpa" mimeType="video/mpeg" />
<mimeMap fileExtension=".mpe" mimeType="video/mpeg" />
<mimeMap fileExtension=".mpeg" mimeType="video/mpeg" />
<mimeMap fileExtension=".mpg" mimeType="video/mpeg" />
<mimeMap fileExtension=".mpp" mimeType="application/vnd.ms-project" />
<mimeMap fileExtension=".mpv2" mimeType="video/mpeg" />
<mimeMap fileExtension=".ms" mimeType="application/x-troff-ms" />
<mimeMap fileExtension=".msi" mimeType="application/octet-stream" />
<mimeMap fileExtension=".mso" mimeType="application/octet-stream" />
<mimeMap fileExtension=".mvb" mimeType="application/x-msmediaview" />
<mimeMap fileExtension=".mvc" mimeType="application/x-miva-compiled" />
<mimeMap fileExtension=".nc" mimeType="application/x-netcdf" />
<mimeMap fileExtension=".nsc" mimeType="video/x-ms-asf" />
<mimeMap fileExtension=".nws" mimeType="message/rfc822" />
<mimeMap fileExtension=".ocx" mimeType="application/octet-stream" />
<mimeMap fileExtension=".oda" mimeType="application/oda" />
<mimeMap fileExtension=".odc" mimeType="text/x-ms-odc" />
<mimeMap fileExtension=".ods" mimeType="application/oleobject" />
<mimeMap fileExtension=".oga" mimeType="audio/ogg" />
<mimeMap fileExtension=".ogg" mimeType="video/ogg" />
<mimeMap fileExtension=".ogv" mimeType="video/ogg" />
<mimeMap fileExtension=".one" mimeType="application/onenote" />
<mimeMap fileExtension=".onea" mimeType="application/onenote" />
<mimeMap fileExtension=".onetoc" mimeType="application/onenote" />
<mimeMap fileExtension=".onetoc2" mimeType="application/onenote" />
<mimeMap fileExtension=".onetmp" mimeType="application/onenote" />
<mimeMap fileExtension=".onepkg" mimeType="application/onenote" />
<mimeMap fileExtension=".osdx" mimeType="application/opensearchdescription+xml" />
<mimeMap fileExtension=".otf" mimeType="font/otf" />
<mimeMap fileExtension=".p10" mimeType="application/pkcs10" />
<mimeMap fileExtension=".p12" mimeType="application/x-pkcs12" />
<mimeMap fileExtension=".p7b" mimeType="application/x-pkcs7-certificates" />
<mimeMap fileExtension=".p7c" mimeType="application/pkcs7-mime" />
<mimeMap fileExtension=".p7m" mimeType="application/pkcs7-mime" />
<mimeMap fileExtension=".p7r" mimeType="application/x-pkcs7-certreqresp" />
<mimeMap fileExtension=".p7s" mimeType="application/pkcs7-signature" />
<mimeMap fileExtension=".pbm" mimeType="image/x-portable-bitmap" />
<mimeMap fileExtension=".pcx" mimeType="application/octet-stream" />
<mimeMap fileExtension=".pcz" mimeType="application/octet-stream" />
<mimeMap fileExtension=".pdf" mimeType="application/pdf" />
<mimeMap fileExtension=".pfb" mimeType="application/octet-stream" />
<mimeMap fileExtension=".pfm" mimeType="application/octet-stream" />
<mimeMap fileExtension=".pfx" mimeType="application/x-pkcs12" />
<mimeMap fileExtension=".pgm" mimeType="image/x-portable-graymap" />
<mimeMap fileExtension=".pko" mimeType="application/vnd.ms-pki.pko" />
<mimeMap fileExtension=".pma" mimeType="application/x-perfmon" />
<mimeMap fileExtension=".pmc" mimeType="application/x-perfmon" />
<mimeMap fileExtension=".pml" mimeType="application/x-perfmon" />
<mimeMap fileExtension=".pmr" mimeType="application/x-perfmon" />
<mimeMap fileExtension=".pmw" mimeType="application/x-perfmon" />
<mimeMap fileExtension=".png" mimeType="image/png" />
<mimeMap fileExtension=".pnm" mimeType="image/x-portable-anymap" />
<mimeMap fileExtension=".pnz" mimeType="image/png" />
<mimeMap fileExtension=".pot" mimeType="application/vnd.ms-powerpoint" />
<mimeMap fileExtension=".potm" mimeType="application/vnd.ms-powerpoint.template.macroEnabled.12" />
<mimeMap fileExtension=".potx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.template" />
<mimeMap fileExtension=".ppam" mimeType="application/vnd.ms-powerpoint.addin.macroEnabled.12" />
<mimeMap fileExtension=".ppm" mimeType="image/x-portable-pixmap" />
<mimeMap fileExtension=".pps" mimeType="application/vnd.ms-powerpoint" />
<mimeMap fileExtension=".ppsm" mimeType="application/vnd.ms-powerpoint.slideshow.macroEnabled.12" />
<mimeMap fileExtension=".ppsx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.slideshow" />
<mimeMap fileExtension=".ppt" mimeType="application/vnd.ms-powerpoint" />
<mimeMap fileExtension=".pptm" mimeType="application/vnd.ms-powerpoint.presentation.macroEnabled.12" />
<mimeMap fileExtension=".pptx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.presentation" />
<mimeMap fileExtension=".prf" mimeType="application/pics-rules" />
<mimeMap fileExtension=".prm" mimeType="application/octet-stream" />
<mimeMap fileExtension=".prx" mimeType="application/octet-stream" />
<mimeMap fileExtension=".ps" mimeType="application/postscript" />
<mimeMap fileExtension=".psd" mimeType="application/octet-stream" />
<mimeMap fileExtension=".psm" mimeType="application/octet-stream" />
<mimeMap fileExtension=".psp" mimeType="application/octet-stream" />
<mimeMap fileExtension=".pub" mimeType="application/x-mspublisher" />
<mimeMap fileExtension=".qt" mimeType="video/quicktime" />
<mimeMap fileExtension=".qtl" mimeType="application/x-quicktimeplayer" />
<mimeMap fileExtension=".qxd" mimeType="application/octet-stream" />
<mimeMap fileExtension=".ra" mimeType="audio/x-pn-realaudio" />
<mimeMap fileExtension=".ram" mimeType="audio/x-pn-realaudio" />
<mimeMap fileExtension=".rar" mimeType="application/octet-stream" />
<mimeMap fileExtension=".ras" mimeType="image/x-cmu-raster" />
<mimeMap fileExtension=".rf" mimeType="image/vnd.rn-realflash" />
<mimeMap fileExtension=".rgb" mimeType="image/x-rgb" />
<mimeMap fileExtension=".rm" mimeType="application/vnd.rn-realmedia" />
<mimeMap fileExtension=".rmi" mimeType="audio/mid" />
<mimeMap fileExtension=".roff" mimeType="application/x-troff" />
<mimeMap fileExtension=".rpm" mimeType="audio/x-pn-realaudio-plugin" />
<mimeMap fileExtension=".rtf" mimeType="application/rtf" />
<mimeMap fileExtension=".rtx" mimeType="text/richtext" />
<mimeMap fileExtension=".scd" mimeType="application/x-msschedule" />
<mimeMap fileExtension=".sct" mimeType="text/scriptlet" />
<mimeMap fileExtension=".sea" mimeType="application/octet-stream" />
<mimeMap fileExtension=".setpay" mimeType="application/set-payment-initiation" />
<mimeMap fileExtension=".setreg" mimeType="application/set-registration-initiation" />
<mimeMap fileExtension=".sgml" mimeType="text/sgml" />
<mimeMap fileExtension=".sh" mimeType="application/x-sh" />
<mimeMap fileExtension=".shar" mimeType="application/x-shar" />
<mimeMap fileExtension=".sit" mimeType="application/x-stuffit" />
<mimeMap fileExtension=".sldm" mimeType="application/vnd.ms-powerpoint.slide.macroEnabled.12" />
<mimeMap fileExtension=".sldx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.slide" />
<mimeMap fileExtension=".smd" mimeType="audio/x-smd" />
<mimeMap fileExtension=".smi" mimeType="application/octet-stream" />
<mimeMap fileExtension=".smx" mimeType="audio/x-smd" />
<mimeMap fileExtension=".smz" mimeType="audio/x-smd" />
<mimeMap fileExtension=".snd" mimeType="audio/basic" />
<mimeMap fileExtension=".snp" mimeType="application/octet-stream" />
<mimeMap fileExtension=".spc" mimeType="application/x-pkcs7-certificates" />
<mimeMap fileExtension=".spl" mimeType="application/futuresplash" />
<mimeMap fileExtension=".spx" mimeType="audio/ogg" />
<mimeMap fileExtension=".src" mimeType="application/x-wais-source" />
<mimeMap fileExtension=".ssm" mimeType="application/streamingmedia" />
<mimeMap fileExtension=".sst" mimeType="application/vnd.ms-pki.certstore" />
<mimeMap fileExtension=".stl" mimeType="application/vnd.ms-pki.stl" />
<mimeMap fileExtension=".sv4cpio" mimeType="application/x-sv4cpio" />
<mimeMap fileExtension=".sv4crc" mimeType="application/x-sv4crc" />
<mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
<mimeMap fileExtension=".svgz" mimeType="image/svg+xml" />
<mimeMap fileExtension=".swf" mimeType="application/x-shockwave-flash" />
<mimeMap fileExtension=".t" mimeType="application/x-troff" />
<mimeMap fileExtension=".tar" mimeType="application/x-tar" />
<mimeMap fileExtension=".tcl" mimeType="application/x-tcl" />
<mimeMap fileExtension=".tex" mimeType="application/x-tex" />
<mimeMap fileExtension=".texi" mimeType="application/x-texinfo" />
<mimeMap fileExtension=".texinfo" mimeType="application/x-texinfo" />
<mimeMap fileExtension=".tgz" mimeType="application/x-compressed" />
<mimeMap fileExtension=".thmx" mimeType="application/vnd.ms-officetheme" />
<mimeMap fileExtension=".thn" mimeType="application/octet-stream" />
<mimeMap fileExtension=".tif" mimeType="image/tiff" />
<mimeMap fileExtension=".tiff" mimeType="image/tiff" />
<mimeMap fileExtension=".toc" mimeType="application/octet-stream" />
<mimeMap fileExtension=".tr" mimeType="application/x-troff" />
<mimeMap fileExtension=".trm" mimeType="application/x-msterminal" />
<mimeMap fileExtension=".ts" mimeType="video/vnd.dlna.mpeg-tts" />
<mimeMap fileExtension=".tsv" mimeType="text/tab-separated-values" />
<mimeMap fileExtension=".ttf" mimeType="application/octet-stream" />
<mimeMap fileExtension=".tts" mimeType="video/vnd.dlna.mpeg-tts" />
<mimeMap fileExtension=".txt" mimeType="text/plain" />
<mimeMap fileExtension=".u32" mimeType="application/octet-stream" />
<mimeMap fileExtension=".uls" mimeType="text/iuls" />
<mimeMap fileExtension=".ustar" mimeType="application/x-ustar" />
<mimeMap fileExtension=".vbs" mimeType="text/vbscript" />
<mimeMap fileExtension=".vcf" mimeType="text/x-vcard" />
<mimeMap fileExtension=".vcs" mimeType="text/plain" />
<mimeMap fileExtension=".vdx" mimeType="application/vnd.ms-visio.viewer" />
<mimeMap fileExtension=".vml" mimeType="text/xml" />
<mimeMap fileExtension=".vsd" mimeType="application/vnd.visio" />
<mimeMap fileExtension=".vss" mimeType="application/vnd.visio" />
<mimeMap fileExtension=".vst" mimeType="application/vnd.visio" />
<mimeMap fileExtension=".vsto" mimeType="application/x-ms-vsto" />
<mimeMap fileExtension=".vsw" mimeType="application/vnd.visio" />
<mimeMap fileExtension=".vsx" mimeType="application/vnd.visio" />
<mimeMap fileExtension=".vtx" mimeType="application/vnd.visio" />
<mimeMap fileExtension=".wasm" mimeType="application/wasm" />
<mimeMap fileExtension=".wav" mimeType="audio/wav" />
<mimeMap fileExtension=".wax" mimeType="audio/x-ms-wax" />
<mimeMap fileExtension=".wbmp" mimeType="image/vnd.wap.wbmp" />
<mimeMap fileExtension=".wcm" mimeType="application/vnd.ms-works" />
<mimeMap fileExtension=".wdb" mimeType="application/vnd.ms-works" />
<mimeMap fileExtension=".webm" mimeType="video/webm" />
<mimeMap fileExtension=".wks" mimeType="application/vnd.ms-works" />
<mimeMap fileExtension=".wm" mimeType="video/x-ms-wm" />
<mimeMap fileExtension=".wma" mimeType="audio/x-ms-wma" />
<mimeMap fileExtension=".wmd" mimeType="application/x-ms-wmd" />
<mimeMap fileExtension=".wmf" mimeType="application/x-msmetafile" />
<mimeMap fileExtension=".wml" mimeType="text/vnd.wap.wml" />
<mimeMap fileExtension=".wmlc" mimeType="application/vnd.wap.wmlc" />
<mimeMap fileExtension=".wmls" mimeType="text/vnd.wap.wmlscript" />
<mimeMap fileExtension=".wmlsc" mimeType="application/vnd.wap.wmlscriptc" />
<mimeMap fileExtension=".wmp" mimeType="video/x-ms-wmp" />
<mimeMap fileExtension=".wmv" mimeType="video/x-ms-wmv" />
<mimeMap fileExtension=".wmx" mimeType="video/x-ms-wmx" />
<mimeMap fileExtension=".wmz" mimeType="application/x-ms-wmz" />
<mimeMap fileExtension=".woff" mimeType="font/x-woff" />
<mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
<mimeMap fileExtension=".wps" mimeType="application/vnd.ms-works" />
<mimeMap fileExtension=".wri" mimeType="application/x-mswrite" />
<mimeMap fileExtension=".wrl" mimeType="x-world/x-vrml" />
<mimeMap fileExtension=".wrz" mimeType="x-world/x-vrml" />
<mimeMap fileExtension=".wsdl" mimeType="text/xml" />
<mimeMap fileExtension=".wtv" mimeType="video/x-ms-wtv" />
<mimeMap fileExtension=".wvx" mimeType="video/x-ms-wvx" />
<mimeMap fileExtension=".x" mimeType="application/directx" />
<mimeMap fileExtension=".xaf" mimeType="x-world/x-vrml" />
<mimeMap fileExtension=".xaml" mimeType="application/xaml+xml" />
<mimeMap fileExtension=".xap" mimeType="application/x-silverlight-app" />
<mimeMap fileExtension=".xbap" mimeType="application/x-ms-xbap" />
<mimeMap fileExtension=".xbm" mimeType="image/x-xbitmap" />
<mimeMap fileExtension=".xdr" mimeType="text/plain" />
<mimeMap fileExtension=".xht" mimeType="application/xhtml+xml" />
<mimeMap fileExtension=".xhtml" mimeType="application/xhtml+xml" />
<mimeMap fileExtension=".xla" mimeType="application/vnd.ms-excel" />
<mimeMap fileExtension=".xlam" mimeType="application/vnd.ms-excel.addin.macroEnabled.12" />
<mimeMap fileExtension=".xlc" mimeType="application/vnd.ms-excel" />
<mimeMap fileExtension=".xlm" mimeType="application/vnd.ms-excel" />
<mimeMap fileExtension=".xls" mimeType="application/vnd.ms-excel" />
<mimeMap fileExtension=".xlsb" mimeType="application/vnd.ms-excel.sheet.binary.macroEnabled.12" />
<mimeMap fileExtension=".xlsm" mimeType="application/vnd.ms-excel.sheet.macroEnabled.12" />
<mimeMap fileExtension=".xlsx" mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
<mimeMap fileExtension=".xlt" mimeType="application/vnd.ms-excel" />
<mimeMap fileExtension=".xltm" mimeType="application/vnd.ms-excel.template.macroEnabled.12" />
<mimeMap fileExtension=".xltx" mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.template" />
<mimeMap fileExtension=".xlw" mimeType="application/vnd.ms-excel" />
<mimeMap fileExtension=".xml" mimeType="text/xml" />
<mimeMap fileExtension=".xof" mimeType="x-world/x-vrml" />
<mimeMap fileExtension=".xpm" mimeType="image/x-xpixmap" />
<mimeMap fileExtension=".xps" mimeType="application/vnd.ms-xpsdocument" />
<mimeMap fileExtension=".xsd" mimeType="text/xml" />
<mimeMap fileExtension=".xsf" mimeType="text/xml" />
<mimeMap fileExtension=".xsl" mimeType="text/xml" />
<mimeMap fileExtension=".xslt" mimeType="text/xml" />
<mimeMap fileExtension=".xsn" mimeType="application/octet-stream" />
<mimeMap fileExtension=".xtp" mimeType="application/octet-stream" />
<mimeMap fileExtension=".xwd" mimeType="image/x-xwindowdump" />
<mimeMap fileExtension=".z" mimeType="application/x-compress" />
<mimeMap fileExtension=".zip" mimeType="application/x-zip-compressed" />
</staticContent>
<tracing>
<traceFailedRequests>
<add path="*">
<traceAreas>
<add provider="ASP" verbosity="Verbose" />
<add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" />
<add provider="ISAPI Extension" verbosity="Verbose" />
<add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module,Rewrite,WebSocket" verbosity="Verbose" />
</traceAreas>
<failureDefinitions statusCodes="200-999" />
</add>
</traceFailedRequests>
<traceProviderDefinitions>
<add name="WWW Server" guid="{3a2a4e84-4c21-4981-ae10-3fda0d9b0f83}">
<areas>
<clear />
<add name="Authentication" value="2" />
<add name="Security" value="4" />
<add name="Filter" value="8" />
<add name="StaticFile" value="16" />
<add name="CGI" value="32" />
<add name="Compression" value="64" />
<add name="Cache" value="128" />
<add name="RequestNotifications" value="256" />
<add name="Module" value="512" />
<add name="Rewrite" value="1024" />
<add name="FastCGI" value="4096" />
<add name="WebSocket" value="16384" />
<add name="ANCM" value="65536" />
</areas>
</add>
<add name="ASP" guid="{06b94d9a-b15e-456e-a4ef-37c984a2cb4b}">
<areas>
<clear />
</areas>
</add>
<add name="ISAPI Extension" guid="{a1c2040e-8840-4c31-ba11-9871031a19ea}">
<areas>
<clear />
</areas>
</add>
<add name="ASPNET" guid="{AFF081FE-0247-4275-9C4E-021F3DC1DA35}">
<areas>
<add name="Infrastructure" value="1" />
<add name="Module" value="2" />
<add name="Page" value="4" />
<add name="AppServices" value="8" />
</areas>
</add>
</traceProviderDefinitions>
</tracing>
<urlCompression />
<validation />
<webdav>
<globalSettings>
<propertyStores>
<add name="webdav_simple_prop" image="%IIS_BIN%\webdav_simple_prop.dll" image32="%IIS_BIN%\webdav_simple_prop.dll" />
</propertyStores>
<lockStores>
<add name="webdav_simple_lock" image="%IIS_BIN%\webdav_simple_lock.dll" image32="%IIS_BIN%\webdav_simple_lock.dll" />
</lockStores>
</globalSettings>
<authoring>
<locks enabled="true" lockStore="webdav_simple_lock" />
</authoring>
<authoringRules />
</webdav>
<webSocket />
<applicationInitialization />
</system.webServer>
<location path="" overrideMode="Allow">
<system.webServer>
<modules>
<add name="IsapiFilterModule" lockItem="true" />
<add name="BasicAuthenticationModule" lockItem="true" />
<add name="IsapiModule" lockItem="true" />
<add name="HttpLoggingModule" lockItem="true" />
<add name="DynamicCompressionModule" lockItem="true" />
<add name="StaticCompressionModule" lockItem="true" />
<add name="DefaultDocumentModule" lockItem="true" />
<add name="DirectoryListingModule" lockItem="true" />
<add name="ProtocolSupportModule" lockItem="true" />
<add name="HttpRedirectionModule" lockItem="true" />
<add name="ServerSideIncludeModule" lockItem="true" />
<add name="StaticFileModule" lockItem="true" />
<add name="AnonymousAuthenticationModule" lockItem="true" />
<add name="CertificateMappingAuthenticationModule" lockItem="true" />
<add name="UrlAuthorizationModule" lockItem="true" />
<add name="WindowsAuthenticationModule" lockItem="true" />
<add name="IISCertificateMappingAuthenticationModule" lockItem="true" />
<add name="WebMatrixSupportModule" lockItem="true" />
<add name="IpRestrictionModule" lockItem="true" />
<add name="DynamicIpRestrictionModule" lockItem="true" />
<add name="RequestFilteringModule" lockItem="true" />
<add name="CustomLoggingModule" lockItem="true" />
<add name="CustomErrorModule" lockItem="true" />
<add name="FailedRequestsTracingModule" lockItem="true" />
<add name="CgiModule" lockItem="true" />
<add name="FastCgiModule" lockItem="true" />
<!-- <add name="WebDAVModule" /> -->
<add name="RewriteModule" />
<add name="OutputCache" type="System.Web.Caching.OutputCacheModule" preCondition="managedHandler" />
<add name="Session" type="System.Web.SessionState.SessionStateModule" preCondition="managedHandler" />
<add name="WindowsAuthentication" type="System.Web.Security.WindowsAuthenticationModule" preCondition="managedHandler" />
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="managedHandler" />
<add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" preCondition="managedHandler" />
<add name="RoleManager" type="System.Web.Security.RoleManagerModule" preCondition="managedHandler" />
<add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" preCondition="managedHandler" />
<add name="FileAuthorization" type="System.Web.Security.FileAuthorizationModule" preCondition="managedHandler" />
<add name="AnonymousIdentification" type="System.Web.Security.AnonymousIdentificationModule" preCondition="managedHandler" />
<add name="Profile" type="System.Web.Profile.ProfileModule" preCondition="managedHandler" />
<add name="UrlMappingsModule" type="System.Web.UrlMappingsModule" preCondition="managedHandler" />
<add name="ApplicationInitializationModule" lockItem="true" />
<add name="WebSocketModule" lockItem="true" />
<add name="ServiceModel-4.0" type="System.ServiceModel.Activation.ServiceHttpModule,System.ServiceModel.Activation,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler,runtimeVersionv4.0" />
<add name="ConfigurationValidationModule" lockItem="true" />
<add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="managedHandler,runtimeVersionv4.0" />
<add name="ScriptModule-4.0" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler,runtimeVersionv4.0" />
<add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler,runtimeVersionv2.0" />
<add name="AspNetCoreModule" lockItem="true" />
<add name="AspNetCoreModuleV2" lockItem="true" />
</modules>
<handlers accessPolicy="Read, Script">
<!-- <add name="WebDAV" path="*" verb="PROPFIND,PROPPATCH,MKCOL,PUT,COPY,DELETE,MOVE,LOCK,UNLOCK" modules="WebDAVModule" resourceType="Unspecified" requireAccess="None" /> -->
<add name="AXD-ISAPI-4.0_64bit" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="PageHandlerFactory-ISAPI-4.0_64bit" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="SimpleHandlerFactory-ISAPI-4.0_64bit" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="WebServiceHandlerFactory-ISAPI-4.0_64bit" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="HttpRemotingHandlerFactory-rem-ISAPI-4.0_64bit" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="HttpRemotingHandlerFactory-soap-ISAPI-4.0_64bit" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="svc-ISAPI-4.0_64bit" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
<add name="rules-ISAPI-4.0_64bit" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
<add name="xoml-ISAPI-4.0_64bit" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
<add name="xamlx-ISAPI-4.0_64bit" path="*.xamlx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
<add name="aspq-ISAPI-4.0_64bit" path="*.aspq" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="cshtm-ISAPI-4.0_64bit" path="*.cshtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="cshtml-ISAPI-4.0_64bit" path="*.cshtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="vbhtm-ISAPI-4.0_64bit" path="*.vbhtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="vbhtml-ISAPI-4.0_64bit" path="*.vbhtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="svc-Integrated" path="*.svc" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
<add name="svc-ISAPI-2.0" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
<add name="xoml-Integrated" path="*.xoml" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
<add name="xoml-ISAPI-2.0" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
<add name="rules-Integrated" path="*.rules" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
<add name="rules-ISAPI-2.0" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
<add name="AXD-ISAPI-4.0_32bit" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="PageHandlerFactory-ISAPI-4.0_32bit" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="SimpleHandlerFactory-ISAPI-4.0_32bit" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="WebServiceHandlerFactory-ISAPI-4.0_32bit" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="HttpRemotingHandlerFactory-rem-ISAPI-4.0_32bit" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="HttpRemotingHandlerFactory-soap-ISAPI-4.0_32bit" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="svc-ISAPI-4.0_32bit" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
<add name="rules-ISAPI-4.0_32bit" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
<add name="xoml-ISAPI-4.0_32bit" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
<add name="xamlx-ISAPI-4.0_32bit" path="*.xamlx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
<add name="aspq-ISAPI-4.0_32bit" path="*.aspq" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="cshtm-ISAPI-4.0_32bit" path="*.cshtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="cshtml-ISAPI-4.0_32bit" path="*.cshtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="vbhtm-ISAPI-4.0_32bit" path="*.vbhtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="vbhtml-ISAPI-4.0_32bit" path="*.vbhtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="TraceHandler-Integrated-4.0" path="trace.axd" verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TraceHandler" preCondition="integratedMode,runtimeVersionv4.0" />
<add name="WebAdminHandler-Integrated-4.0" path="WebAdmin.axd" verb="GET,DEBUG" type="System.Web.Handlers.WebAdminHandler" preCondition="integratedMode,runtimeVersionv4.0" />
<add name="AssemblyResourceLoader-Integrated-4.0" path="WebResource.axd" verb="GET,DEBUG" type="System.Web.Handlers.AssemblyResourceLoader" preCondition="integratedMode,runtimeVersionv4.0" />
<add name="PageHandlerFactory-Integrated-4.0" path="*.aspx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" preCondition="integratedMode,runtimeVersionv4.0" />
<add name="SimpleHandlerFactory-Integrated-4.0" path="*.ashx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.SimpleHandlerFactory" preCondition="integratedMode,runtimeVersionv4.0" />
<add name="WebServiceHandlerFactory-Integrated-4.0" path="*.asmx" verb="GET,HEAD,POST,DEBUG" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
<add name="HttpRemotingHandlerFactory-rem-Integrated-4.0" path="*.rem" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv4.0" />
<add name="HttpRemotingHandlerFactory-soap-Integrated-4.0" path="*.soap" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv4.0" />
<add name="svc-Integrated-4.0" path="*.svc" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
<add name="rules-Integrated-4.0" path="*.rules" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
<add name="xoml-Integrated-4.0" path="*.xoml" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
<add name="xamlx-Integrated-4.0" path="*.xamlx" verb="GET,HEAD,POST,DEBUG" type="System.Xaml.Hosting.XamlHttpHandlerFactory, System.Xaml.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
<add name="aspq-Integrated-4.0" path="*.aspq" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
<add name="cshtm-Integrated-4.0" path="*.cshtm" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
<add name="cshtml-Integrated-4.0" path="*.cshtml" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
<add name="vbhtm-Integrated-4.0" path="*.vbhtm" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
<add name="vbhtml-Integrated-4.0" path="*.vbhtml" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
<add name="ScriptHandlerFactoryAppServices-Integrated-4.0" path="*_AppService.axd" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode,runtimeVersionv4.0" />
<add name="ScriptResourceIntegrated-4.0" path="*ScriptResource.axd" verb="GET,HEAD" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode,runtimeVersionv4.0" />
<add name="ASPClassic" path="*.asp" verb="GET,HEAD,POST" modules="IsapiModule" scriptProcessor="%IIS_BIN%\asp.dll" resourceType="File" />
<add name="SecurityCertificate" path="*.cer" verb="GET,HEAD,POST" modules="IsapiModule" scriptProcessor="%IIS_BIN%\asp.dll" resourceType="File" />
<add name="ISAPI-dll" path="*.dll" verb="*" modules="IsapiModule" resourceType="File" requireAccess="Execute" allowPathInfo="true" />
<add name="TraceHandler-Integrated" path="trace.axd" verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TraceHandler" preCondition="integratedMode,runtimeVersionv2.0" />
<add name="WebAdminHandler-Integrated" path="WebAdmin.axd" verb="GET,DEBUG" type="System.Web.Handlers.WebAdminHandler" preCondition="integratedMode,runtimeVersionv2.0" />
<add name="AssemblyResourceLoader-Integrated" path="WebResource.axd" verb="GET,DEBUG" type="System.Web.Handlers.AssemblyResourceLoader" preCondition="integratedMode,runtimeVersionv2.0" />
<add name="PageHandlerFactory-Integrated" path="*.aspx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" preCondition="integratedMode,runtimeVersionv2.0" />
<add name="SimpleHandlerFactory-Integrated" path="*.ashx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.SimpleHandlerFactory" preCondition="integratedMode,runtimeVersionv2.0" />
<add name="WebServiceHandlerFactory-Integrated" path="*.asmx" verb="GET,HEAD,POST,DEBUG" type="System.Web.Services.Protocols.WebServiceHandlerFactory,System.Web.Services,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" preCondition="integratedMode,runtimeVersionv2.0" />
<add name="HttpRemotingHandlerFactory-rem-Integrated" path="*.rem" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,System.Runtime.Remoting,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
<add name="HttpRemotingHandlerFactory-soap-Integrated" path="*.soap" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,System.Runtime.Remoting,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
<add name="AXD-ISAPI-2.0" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
<add name="PageHandlerFactory-ISAPI-2.0" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
<add name="SimpleHandlerFactory-ISAPI-2.0" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
<add name="WebServiceHandlerFactory-ISAPI-2.0" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
<add name="HttpRemotingHandlerFactory-rem-ISAPI-2.0" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
<add name="HttpRemotingHandlerFactory-soap-ISAPI-2.0" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
<add name="svc-ISAPI-2.0-64" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
<add name="AXD-ISAPI-2.0-64" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
<add name="PageHandlerFactory-ISAPI-2.0-64" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
<add name="SimpleHandlerFactory-ISAPI-2.0-64" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
<add name="WebServiceHandlerFactory-ISAPI-2.0-64" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
<add name="HttpRemotingHandlerFactory-rem-ISAPI-2.0-64" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
<add name="HttpRemotingHandlerFactory-soap-ISAPI-2.0-64" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
<add name="rules-64-ISAPI-2.0" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
<add name="xoml-64-ISAPI-2.0" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
<add name="CGI-exe" path="*.exe" verb="*" modules="CgiModule" resourceType="File" requireAccess="Execute" allowPathInfo="true" />
<add name="SSINC-stm" path="*.stm" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" />
<add name="SSINC-shtm" path="*.shtm" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" />
<add name="SSINC-shtml" path="*.shtml" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" />
<add name="TRACEVerbHandler" path="*" verb="TRACE" modules="ProtocolSupportModule" requireAccess="None" />
<add name="OPTIONSVerbHandler" path="*" verb="OPTIONS" modules="ProtocolSupportModule" requireAccess="None" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" responseBufferLimit="0" />
<add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" />
</handlers>
</system.webServer>
</location>
</configuration>
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,171 @@
{
"Version": 1,
"WorkspaceRootPath": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|c:\\users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\controllers\\opcuaoperation.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|solutionrelative:console_opcua_sgdn_tornio\\controllers\\opcuaoperation.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|c:\\users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|solutionrelative:console_opcua_sgdn_tornio\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|c:\\users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\controllers\\opcuareader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|solutionrelative:console_opcua_sgdn_tornio\\controllers\\opcuareader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|c:\\users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\controllers\\jobchannel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|solutionrelative:console_opcua_sgdn_tornio\\controllers\\jobchannel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|c:\\users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\controllers\\opcuaconnection.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|solutionrelative:console_opcua_sgdn_tornio\\controllers\\opcuaconnection.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|c:\\users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\models\\opcuaqueue.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|solutionrelative:console_opcua_sgdn_tornio\\models\\opcuaqueue.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|c:\\users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\service\\machinepolling.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|solutionrelative:console_opcua_sgdn_tornio\\service\\machinepolling.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|c:\\users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\models\\settings.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|solutionrelative:console_opcua_sgdn_tornio\\models\\settings.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 231,
"DocumentGroups": [
{
"DockedWidth": 751,
"SelectedChildIndex": 8,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:332049752:0:{83107a3e-496a-485e-b455-16ddb978e55e}"
},
{
"$type": "Bookmark",
"Name": "ST:128:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
},
{
"$type": "Bookmark",
"Name": "ST:129:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "JobChannel.cs",
"DocumentMoniker": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Controllers\\JobChannel.cs",
"RelativeDocumentMoniker": "console_opcua_sgdn_tornio\\Controllers\\JobChannel.cs",
"ToolTip": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Controllers\\JobChannel.cs",
"RelativeToolTip": "console_opcua_sgdn_tornio\\Controllers\\JobChannel.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAAWAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-09T08:27:18.136Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 5,
"Title": "OpcUaQueue.cs",
"DocumentMoniker": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Models\\OpcUaQueue.cs",
"RelativeDocumentMoniker": "console_opcua_sgdn_tornio\\Models\\OpcUaQueue.cs",
"ToolTip": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Models\\OpcUaQueue.cs",
"RelativeToolTip": "console_opcua_sgdn_tornio\\Models\\OpcUaQueue.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAYAAAAbAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-09T07:13:06.424Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "OpcUaReader.cs",
"DocumentMoniker": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Controllers\\OpcUaReader.cs",
"RelativeDocumentMoniker": "console_opcua_sgdn_tornio\\Controllers\\OpcUaReader.cs",
"ToolTip": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Controllers\\OpcUaReader.cs",
"RelativeToolTip": "console_opcua_sgdn_tornio\\Controllers\\OpcUaReader.cs",
"ViewState": "AgIAAAMAAAAAAAAAAAAAACYAAAAMAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-23T10:29:08.048Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "Program.cs",
"DocumentMoniker": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Program.cs",
"RelativeDocumentMoniker": "console_opcua_sgdn_tornio\\Program.cs",
"ToolTip": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Program.cs*",
"RelativeToolTip": "console_opcua_sgdn_tornio\\Program.cs*",
"ViewState": "AgIAADoAAAAAAAAAAAAQwEUAAAAmAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-29T09:48:55.671Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "OpcUaOperation.cs",
"DocumentMoniker": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Controllers\\OpcUaOperation.cs",
"RelativeDocumentMoniker": "console_opcua_sgdn_tornio\\Controllers\\OpcUaOperation.cs",
"ToolTip": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Controllers\\OpcUaOperation.cs",
"RelativeToolTip": "console_opcua_sgdn_tornio\\Controllers\\OpcUaOperation.cs",
"ViewState": "AgIAACAAAAAAAAAAAAAAADoAAAAJAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-23T10:15:19.45Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 6,
"Title": "MachinePolling.cs",
"DocumentMoniker": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Service\\MachinePolling.cs",
"RelativeDocumentMoniker": "console_opcua_sgdn_tornio\\Service\\MachinePolling.cs",
"ToolTip": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Service\\MachinePolling.cs",
"RelativeToolTip": "console_opcua_sgdn_tornio\\Service\\MachinePolling.cs",
"ViewState": "AgIAABYAAAAAAAAAAAAQwA0AAABFAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-09T07:19:19.211Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 7,
"Title": "Settings.cs",
"DocumentMoniker": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Models\\Settings.cs",
"RelativeDocumentMoniker": "console_opcua_sgdn_tornio\\Models\\Settings.cs",
"ToolTip": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Models\\Settings.cs",
"RelativeToolTip": "console_opcua_sgdn_tornio\\Models\\Settings.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-09T08:40:57.078Z"
},
{
"$type": "Document",
"DocumentIndex": 4,
"Title": "OpcUaConnection.cs",
"DocumentMoniker": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Controllers\\OpcUaConnection.cs",
"RelativeDocumentMoniker": "console_opcua_sgdn_tornio\\Controllers\\OpcUaConnection.cs",
"ToolTip": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Controllers\\OpcUaConnection.cs",
"RelativeToolTip": "console_opcua_sgdn_tornio\\Controllers\\OpcUaConnection.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAADYAAAAQAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-09T07:59:50.993Z",
"EditorCaption": ""
}
]
}
]
}
]
}
@@ -0,0 +1,172 @@
{
"Version": 1,
"WorkspaceRootPath": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|c:\\users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\service\\machinepolling.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|solutionrelative:console_opcua_sgdn_tornio\\service\\machinepolling.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|c:\\users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\controllers\\opcuaconnection.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|solutionrelative:console_opcua_sgdn_tornio\\controllers\\opcuaconnection.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|c:\\users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\controllers\\opcuaoperation.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|solutionrelative:console_opcua_sgdn_tornio\\controllers\\opcuaoperation.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|c:\\users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\controllers\\opcuareader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|solutionrelative:console_opcua_sgdn_tornio\\controllers\\opcuareader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|c:\\users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\models\\opcuaqueue.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|solutionrelative:console_opcua_sgdn_tornio\\models\\opcuaqueue.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|c:\\users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\controllers\\jobchannel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|solutionrelative:console_opcua_sgdn_tornio\\controllers\\jobchannel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|c:\\users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|solutionrelative:console_opcua_sgdn_tornio\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|c:\\users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\models\\settings.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{51DE62BB-1641-6D24-14B4-DD2D0609B92E}|console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio.csproj|solutionrelative:console_opcua_sgdn_tornio\\models\\settings.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 231,
"DocumentGroups": [
{
"DockedWidth": 751,
"SelectedChildIndex": 8,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:332049752:0:{83107a3e-496a-485e-b455-16ddb978e55e}"
},
{
"$type": "Bookmark",
"Name": "ST:128:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
},
{
"$type": "Bookmark",
"Name": "ST:129:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
},
{
"$type": "Document",
"DocumentIndex": 4,
"Title": "OpcUaQueue.cs",
"DocumentMoniker": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Models\\OpcUaQueue.cs",
"RelativeDocumentMoniker": "console_opcua_sgdn_tornio\\Models\\OpcUaQueue.cs",
"ToolTip": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Models\\OpcUaQueue.cs",
"RelativeToolTip": "console_opcua_sgdn_tornio\\Models\\OpcUaQueue.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAYAAAAbAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-09T07:13:06.424Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "OpcUaReader.cs",
"DocumentMoniker": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Controllers\\OpcUaReader.cs",
"RelativeDocumentMoniker": "console_opcua_sgdn_tornio\\Controllers\\OpcUaReader.cs",
"ToolTip": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Controllers\\OpcUaReader.cs",
"RelativeToolTip": "console_opcua_sgdn_tornio\\Controllers\\OpcUaReader.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAACYAAAAMAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-23T10:29:08.048Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "OpcUaConnection.cs",
"DocumentMoniker": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Controllers\\OpcUaConnection.cs",
"RelativeDocumentMoniker": "console_opcua_sgdn_tornio\\Controllers\\OpcUaConnection.cs",
"ToolTip": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Controllers\\OpcUaConnection.cs",
"RelativeToolTip": "console_opcua_sgdn_tornio\\Controllers\\OpcUaConnection.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAABAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-09T07:59:50.993Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "OpcUaOperation.cs",
"DocumentMoniker": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Controllers\\OpcUaOperation.cs",
"RelativeDocumentMoniker": "console_opcua_sgdn_tornio\\Controllers\\OpcUaOperation.cs",
"ToolTip": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Controllers\\OpcUaOperation.cs",
"RelativeToolTip": "console_opcua_sgdn_tornio\\Controllers\\OpcUaOperation.cs",
"ViewState": "AgIAAAwAAAAAAAAAAADwvzkAAAANAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-23T10:15:19.45Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "MachinePolling.cs",
"DocumentMoniker": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Service\\MachinePolling.cs",
"RelativeDocumentMoniker": "console_opcua_sgdn_tornio\\Service\\MachinePolling.cs",
"ToolTip": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Service\\MachinePolling.cs",
"RelativeToolTip": "console_opcua_sgdn_tornio\\Service\\MachinePolling.cs",
"ViewState": "AgIAAAoAAAAAAAAAAAAUwCsAAAAJAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-09T07:19:19.211Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 5,
"Title": "JobChannel.cs",
"DocumentMoniker": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Controllers\\JobChannel.cs",
"RelativeDocumentMoniker": "console_opcua_sgdn_tornio\\Controllers\\JobChannel.cs",
"ToolTip": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Controllers\\JobChannel.cs",
"RelativeToolTip": "console_opcua_sgdn_tornio\\Controllers\\JobChannel.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAAWAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-09T08:27:18.136Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 6,
"Title": "Program.cs",
"DocumentMoniker": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Program.cs",
"RelativeDocumentMoniker": "console_opcua_sgdn_tornio\\Program.cs",
"ToolTip": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Program.cs",
"RelativeToolTip": "console_opcua_sgdn_tornio\\Program.cs",
"ViewState": "AgIAAAwAAAAAAAAAAAAAAEUAAAAmAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-29T09:48:55.671Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 7,
"Title": "Settings.cs",
"DocumentMoniker": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Models\\Settings.cs",
"RelativeDocumentMoniker": "console_opcua_sgdn_tornio\\Models\\Settings.cs",
"ToolTip": "C:\\Users\\cbo\\source\\repos\\console_opcua_sgdn_tornio\\console_opcua_sgdn_tornio\\Models\\Settings.cs",
"RelativeToolTip": "console_opcua_sgdn_tornio\\Models\\Settings.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAABsAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-09T08:40:57.078Z",
"EditorCaption": ""
}
]
}
]
}
]
}
+3
View File
@@ -0,0 +1,3 @@
<Solution>
<Project Path="console_opcua_sgdn_tornio/console_opcua_sgdn_tornio.csproj" />
</Solution>
@@ -0,0 +1,20 @@
using console_opcua_sgdn_tornio.Models;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Channels;
namespace console_opcua_sgdn_tornio.Controllers
{
internal class JobChannel
{
public static readonly Channel<OpcUaQueue> Channel =
System.Threading.Channels.Channel.CreateBounded<OpcUaQueue>(
new BoundedChannelOptions(100)
{
FullMode = BoundedChannelFullMode.Wait,
SingleReader = true,
SingleWriter = false
});
}
}
@@ -0,0 +1,107 @@
using Opc.Ua;
using Opc.Ua.Client;
using Opc.Ua.Configuration;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using console_opcua_sgdn_tornio.Models;
namespace console_opcua_sgdn_tornio.Controllers
{
public class OpcUaConnection(OpcUaSettings ous, CancellationToken ct)
{
private Session _session;
public async Task ConnectAsync()
{
var config = new ApplicationConfiguration()
{
ApplicationName = ous.ApplicationName, //"MyPalOpcUa",
ApplicationUri = ous.ApplicationUrn, //$"urn:{System.Net.Dns.GetHostName()}:MyPalOpcUa",
ApplicationType = ApplicationType.Client,
SecurityConfiguration = new SecurityConfiguration
{
ApplicationCertificate = new CertificateIdentifier
{
StoreType = "Directory",
StorePath = "pki/own",
SubjectName = "MyPalOpcUa"
},
TrustedPeerCertificates = new CertificateTrustList
{
StoreType = "Directory",
StorePath = "pki/trusted"
},
TrustedIssuerCertificates = new CertificateTrustList
{
StoreType = "Directory",
StorePath = "pki/issuers"
},
RejectedCertificateStore = new CertificateTrustList
{
StoreType = "Directory",
StorePath = "pki/rejected"
},
RejectSHA1SignedCertificates = false,
MinimumCertificateKeySize = 1024,
AutoAcceptUntrustedCertificates = true
},
TransportConfigurations = new TransportConfigurationCollection(),
TransportQuotas = new TransportQuotas { OperationTimeout = 15000 },
ClientConfiguration = new ClientConfiguration { DefaultSessionTimeout = 60000 },
TraceConfiguration = new TraceConfiguration()
};
await config.Validate(ApplicationType.Client);
config.CertificateValidator.CertificateValidation += (s, e) =>
{
if (e.Error.StatusCode == StatusCodes.BadCertificateUntrusted ||
e.Error.StatusCode == StatusCodes.BadCertificateChainIncomplete)
{
e.Accept = true;
}
};
var application = new ApplicationInstance
{
ApplicationName = "MyPalOpcUa",
ApplicationType = ApplicationType.Client,
ApplicationConfiguration = config
};
await application.CheckApplicationInstanceCertificatesAsync(true, 2048, ct);
var selectedEndpoint = await CoreClientUtils.SelectEndpointAsync(config, ous.EndpointUrl, true, discoverTimeout: 15000, ct);
// Load user certificate and private key ! Generated from machine !
byte[] certBytes = await File.ReadAllBytesAsync(ous.CertPath); //File.ReadAllBytes(@"C:\Certs\TNC\opcua-user-cert.der");
string keyPem = await File.ReadAllTextAsync(ous.KeyPath); //File.ReadAllText(@"C:\Certs\TNC\opcua-user-cert.key.pem");
var cert = new X509Certificate2(certBytes);
using var rsa = RSA.Create();
rsa.ImportFromPem(keyPem.ToCharArray());
var certWithKey = cert.CopyWithPrivateKey(rsa);
var epConf = new ConfiguredEndpoint(null, selectedEndpoint, EndpointConfiguration.Create(config));
_session = await Session.Create(
config,
epConf,
false,
ous.ApplicationName,
ous.SessionTimeout,
new UserIdentity(certWithKey),
null,
ct
);
}
public Session Session => _session;
}
}
@@ -0,0 +1,63 @@
using Opc.Ua;
using System;
using System.Collections.Generic;
using System.Text;
using Opc.Ua.Client;
namespace console_opcua_sgdn_tornio.Controllers
{
public enum OperationState
{
Idle,
Ready,
Setup,
Machining,
Completed,
Aborted,
Error
}
public class OperationContext
{
public int OperationId { get; set; }
public OperationState State { get; set; } = OperationState.Idle;
public DateTime? StartUtc { get; set; }
public DateTime? MachiningStartUtc { get; set; }
public DateTime? EndUtc { get; set; }
public string ProgramName { get; set; }
}
public static class OpcUaOperation
{
public static void Browse(Session session, NodeId nodeId, int level = 0)
{
ReferenceDescriptionCollection refs;
byte[] cp;
session.Browse(
null,
null,
nodeId,
0,
BrowseDirection.Forward,
ReferenceTypeIds.HierarchicalReferences,
true,
(uint)(NodeClass.Object | NodeClass.Variable),
out cp,
out refs);
foreach (var r in refs)
{
var nid = ExpandedNodeId.ToNodeId(r.NodeId, session.NamespaceUris);
Console.WriteLine($"{new string(' ', level * 2)}- {r.DisplayName.Text} | {nid}");
if (nid != null)
Browse(session, nid, level + 1);
}
}
}
}
@@ -0,0 +1,55 @@
using Opc.Ua;
using Opc.Ua.Client;
namespace console_opcua_sgdn_tornio.Controllers
{
static class HeidenhainNodes
{
// Stato programma
public static readonly NodeId ProgramRunning =
new("ns=1;s=Channel1.State.ProgramRunning");
public static readonly NodeId ProgramName =
new("ns=1;s=Channel1.Program.Name");
// Mandrino
public static readonly NodeId SpindleOn =
new("ns=1;s=Channel1.Spindle.Running");
// Errori
public static readonly NodeId NcError =
new("ns=1;s=Channel1.Error.Active");
// Q-Parameter OP ID
public static readonly NodeId Q100 =
new("ns=1;s=Channel1.QParameters[100]");
}
public class OpcUaReader
{
private readonly Session _session;
public OpcUaReader(Session session)
{
_session = session;
}
public async Task<bool> ReadBool(NodeId nodeId)
{
var value = await _session.ReadValueAsync<bool>(nodeId);
return value;
}
public async Task<int> ReadInt(NodeId nodeId)
{
var value = await _session.ReadValueAsync<int>(nodeId);
return value;
}
public string ReadString(NodeId nodeId)
{
var value = _session.ReadValue(nodeId);
return value.Value?.ToString();
}
}
}
+28
View File
@@ -0,0 +1,28 @@
# Vedere https://aka.ms/customizecontainer per informazioni su come personalizzare il contenitore di debug e su come Visual Studio usa questo Dockerfile per compilare le immagini per un debug più rapido.
# Questa fase viene usata durante l'esecuzione da Visual Studio in modalità rapida (impostazione predefinita per la configurazione di debug)
FROM mcr.microsoft.com/dotnet/runtime:10.0 AS base
USER $APP_UID
WORKDIR /app
# Questa fase viene usata per compilare il progetto di servizio
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY ["console_opcua_sgdn_tornio/console_opcua_sgdn_tornio.csproj", "console_opcua_sgdn_tornio/"]
RUN dotnet restore "./console_opcua_sgdn_tornio/console_opcua_sgdn_tornio.csproj"
COPY . .
WORKDIR "/src/console_opcua_sgdn_tornio"
RUN dotnet build "./console_opcua_sgdn_tornio.csproj" -c $BUILD_CONFIGURATION -o /app/build
# Questa fase viene usata per pubblicare il progetto di servizio da copiare nella fase finale
FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "./console_opcua_sgdn_tornio.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
# Questa fase viene usata nell'ambiente di produzione o durante l'esecuzione da Visual Studio in modalità normale (impostazione predefinita quando non si usa la configurazione di debug)
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "console_opcua_sgdn_tornio.dll"]
@@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace console_opcua_sgdn_tornio.Models
{
public class OpcUaQueue
{
public int ID { get; set; }
public string ProdId {get; set;}
public string JsonValues {get; set;}
public bool IsSentToMachine {get; set;}
public bool IsSentToAx {get; set;}
public string CreatedBy {get; set;}
public string CreatedDateTime {get; set;}
public string WrkCtrId {get; set;}
public bool IsInError {get; set;}
public string ErrorString {get; set;}
public long WrkCtrRecId {get; set;}
}
}
@@ -0,0 +1,33 @@
using System;
using System.Collections.Generic;
using System.Text;
using Opc.Ua;
namespace console_opcua_sgdn_tornio.Models
{
public class OpcUaSettings
{
public string DnsName { get; set; }
public string EndpointUrl {get; set;}
public string ApplicationName {get; set;}
public string ApplicationUrn {get; set;}
public uint SessionTimeout { get; set; }
public string CertPath { get; set; }
public string KeyPath { get; set; }
}
public class ParpasNodeId
{
public readonly NodeId CurrentState = new(51002, 1);
public readonly NodeId ProgramName = new(100022, 1);
// In attesa che il produttore ci confermi la creazione dei nodi
//public readonly NodeId StateStart = new(0, 1);
//public readonly NodeId StatePause = new(0, 1);
//public readonly NodeId StateEnd = new(0, 1);
//public readonly NodeId Worker = new(0, 1);
//public readonly NodeId ProjId = new(0, 1);
//public readonly NodeId WrkCtrRecId = new(0, 1); // RecId Fase
}
}
+119
View File
@@ -0,0 +1,119 @@
using console_opcua_sgdn_tornio.Controllers;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Opc.Ua;
using Opc.Ua.Client;
using Serilog;
using System.Linq.Expressions;
using System.Reflection.PortableExecutable;
using System.Threading.Channels;
using console_opcua_sgdn_tornio.Models;
using console_opcua_sgdn_tornio.Service;
namespace console_opcua_sgdn_tornio
{
public static class Program
{
static async Task Main(string[] args)//void Mian(string[] args)
{
try
{
// Add logger
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
Directory.CreateDirectory("pki/own");
Directory.CreateDirectory("pki/trusted");
Directory.CreateDirectory("pki/issuers");
Directory.CreateDirectory("pki/rejected");
Host.CreateDefaultBuilder(args)
.ConfigureAppConfiguration(config =>
{
config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
})
//.UseSerilog(Log.Logger)
.ConfigureServices((context, services) =>
{
services.AddHostedService<QueuePolling>();
services.AddHostedService<MachinePolling>();
})
.Build()
.Run();
//CancellationTokenSource source = new CancellationTokenSource();
//CancellationToken ct = source.Token;
//var opc = new OpcUaConnection(ct);
//Console.WriteLine("Connessione al server OPC UA...");
//await opc.ConnectAsync("opc.tcp://10.2.5.1:4840");
//var reader = new OpcUaReader(opc.Session);
//var ctx = new OperationContext();
//while (!ct.IsCancellationRequested)
//{
// if (!opc.Session.Connected)
// source.Cancel();
// try
// {
// OpcUaOperation.Browse(opc.Session, new NodeId(100000, 2));
// }
// catch (Exception ex)
// {
// Console.WriteLine("Errore durante la lettura OPC UA: " + ex.Message);
// }
//}
//bool programRunning = await reader.ReadBool(HeidenhainNodes.ProgramRunning);
//bool spindleOn = await reader.ReadBool(HeidenhainNodes.SpindleOn);
//bool ncError = await reader.ReadBool(HeidenhainNodes.NcError);
//stateMachine.Update(
// ctx,
// programRunning,
// spindleOn,
// ncError,
// opId);
//await Task.Delay(200, ct);
//// Read esempio
//var value = await opc.ReadNodeAsync("ns=2;s=Demo.Static.Scalar.Double");
//Console.WriteLine("Valore letto: " + value.Value);
//// Write esempio
//// await opc.WriteNodeAsync("ns=2;s=Demo.Static.Scalar.Double", 123.45);
//// Subscription esempio
//var sub = opc.CreateSubscription(1000);
//var item = new MonitoredItem(sub.DefaultItem)
//{
// StartNodeId = "ns=2;s=Demo.Static.Scalar.Double",
// SamplingInterval = 1000
//};
//item.Notification += (m, args) =>
//{
// var v = ((MonitoredItemNotification)args.NotificationValue).Value;
// Console.WriteLine("Cambio: " + v.Value);
//};
//sub.AddItem(item);
//sub.ApplyChanges();
//Console.WriteLine("Premi invio per uscire...");
//Console.ReadLine();
//opc.Disconnect();
}
}
}
@@ -0,0 +1,10 @@
{
"profiles": {
"console_opcua_sgdn_tornio": {
"commandName": "Project"
},
"Container (Dockerfile)": {
"commandName": "Docker"
}
}
}
@@ -0,0 +1,122 @@
using console_opcua_sgdn_tornio.Controllers;
using console_opcua_sgdn_tornio.Models;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using System.Data.SqlClient;
using System.Net.NetworkInformation;
using System.Threading;
using System.Threading.Channels;
using static Org.BouncyCastle.Math.EC.ECCurve;
namespace console_opcua_sgdn_tornio.Service
{
// ?? MachinePolling da portare a ParpasPolling o gestirlo sotto?
public class MachinePolling : BackgroundService
{
private OpcUaSettings _opcUaSettings;
private string _connectionString;
public MachinePolling(IConfiguration configuration)
{
_opcUaSettings = configuration.GetSection("OpcUaParpasSettings").Get<OpcUaSettings>();
_connectionString = configuration.GetConnectionString("PortalPFMSql");
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
await foreach (var job in JobChannel.Channel.Reader.ReadAllAsync(stoppingToken))
{
Serilog.Log.Logger.Information("Inizio processing Job {Id}", job.ID);
if (await PingWithRetryAsync(_opcUaSettings.DnsName, cancellationToken: stoppingToken))
{
await ProcessJobAsync(job, stoppingToken);
}
else
{
job.ErrorString = "Impossibile contattare la macchina dopo più tentativi.";
await ClosingRecordWithErrorAsync(job, stoppingToken);
}
Serilog.Log.Logger.Information("Fine processing Job {Id}", job.ID);
}
}
#region MainProcess
private async Task ProcessJobAsync(OpcUaQueue job, CancellationToken ct)
{
// Connessione a OPCUA e logiche varie
OpcUaConnection ouc = new OpcUaConnection(_opcUaSettings, ct);
ouc.ConnectAsync();
// qui DB update, chiamate API, ecc.
}
#endregion
#region Utility
private async Task<bool> PingWithRetryAsync(string host, int maxAttempts = 5, CancellationToken cancellationToken = default)
{
using var ping = new Ping();
for (int attempt = 1; attempt <= maxAttempts; attempt++)
{
cancellationToken.ThrowIfCancellationRequested();
try
{
var reply = await ping.SendPingAsync(host, 3000);
if (reply.Status == IPStatus.Success)
return true;
}
catch
{
Serilog.Log.Logger.Warning($"Non è stato possibile contattare la macchina tentativo {attempt} di {maxAttempts}");
}
if (attempt < maxAttempts)
await Task.Delay(TimeSpan.FromSeconds(60), cancellationToken);
}
Serilog.Log.Logger.Error($"Non è stato possibile contattare la macchina");
return false;
}
#endregion
#region SQL
private async Task ClosingRecordWithErrorAsync(OpcUaQueue job, CancellationToken cancellationToken)
{
using var connection = new SqlConnection(_connectionString);
await connection.OpenAsync(cancellationToken);
var command = new SqlCommand(
"""
UPDATE [db_PalFactoryMonitoring].[dbo].[OPC_UA_Queue]
SET IsInError = 1, ErrorString = @Error
WHERE ID = @Id
""",
connection);
command.Parameters.AddWithValue("@Id", job.ID);
command.Parameters.AddWithValue("@Error", job.ErrorString);
await command.ExecuteNonQueryAsync(cancellationToken);
await JobChannel.Channel.Writer.WriteAsync(job, cancellationToken);
Serilog.Log.Logger.Information("Job {Id} pronto per essere inviato in macchiana", job.ID);
}
#endregion
}
}
@@ -0,0 +1,118 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Text;
using System.Threading.Channels;
using console_opcua_sgdn_tornio.Controllers;
using console_opcua_sgdn_tornio.Models;
namespace console_opcua_sgdn_tornio.Service
{
public class QueuePolling : BackgroundService
{
private readonly string _connectionString;
public QueuePolling(IConfiguration config, Channel<OpcUaQueue> queue)
{
_connectionString = config.GetConnectionString("PortalPFMSql");
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
Serilog.Log.Logger.Information("SQL Polling Service started.");
while (!stoppingToken.IsCancellationRequested)
{
try
{
await PollDatabaseAsync(stoppingToken);
}
catch (Exception ex)
{
Serilog.Log.Logger.Error(ex, "Errore durante il polling SQL");
}
await Task.Delay(TimeSpan.FromSeconds(5), stoppingToken);
}
Serilog.Log.Logger.Information("SQL Polling Service stopped.");
}
private async Task PollDatabaseAsync(CancellationToken cancellationToken)
{
using var connection = new SqlConnection(_connectionString);
await connection.OpenAsync(cancellationToken);
var command = new SqlCommand(
"""
SELECT [ID]
,[ProdId]
,[JsonValues]
,[IsSentToMachine]
,[IsSentToAx]
,[CreatedBy]
,[CreatedDateTime]
,[WrkCtrId]
,[IsInError]
,[ErrorString]
,[WrkCtrRecId]
FROM [db_PalFactoryMonitoring].[dbo].[OPC_UA_Queue]
WHERE [IsSentToMachine] = 0
""",
connection);
using var reader = await command.ExecuteReaderAsync(cancellationToken);
while (await reader.ReadAsync(cancellationToken))
{
var id = reader.GetInt32(0);
var prodId = reader.GetString(1);
Serilog.Log.Logger.Information("Trovato job {Id} con stato {ProdId}", id, prodId);
var record = new OpcUaQueue()
{
ID = id,
ProdId = prodId,
JsonValues = reader.GetString(2),
IsSentToMachine = reader.GetBoolean(3),
IsSentToAx = reader.GetBoolean(4),
CreatedBy = reader.GetString(5),
CreatedDateTime = reader.GetDataTypeName(6),
WrkCtrId = reader.GetString(7),
IsInError = reader.GetBoolean(8),
ErrorString = reader.GetString(9),
WrkCtrRecId = reader.GetInt64(10)
};
await ProcessJobAsync(record, cancellationToken);
}
}
private async Task ProcessJobAsync(OpcUaQueue job, CancellationToken cancellationToken)
{
using var connection = new SqlConnection(_connectionString);
await connection.OpenAsync(cancellationToken);
var command = new SqlCommand(
"""
UPDATE [db_PalFactoryMonitoring].[dbo].[OPC_UA_Queue]
SET IsSentToMachine = 1
WHERE ID = @Id
""",
connection);
command.Parameters.AddWithValue("@Id", job.ID);
await command.ExecuteNonQueryAsync(cancellationToken);
await JobChannel.Channel.Writer.WriteAsync(job, cancellationToken);
Serilog.Log.Logger.Information("Job {Id} pronto per essere inviato in macchiana", job.ID);
}
}
}
@@ -0,0 +1,15 @@
{
"ConnectionStrings": {
"PortalSql": "Data Source=sql.pal.it;Initial Catalog=db_PalPortalServices;Persist Security Info=True;User ID=svcSqlPalPortalServices;Password=^Q$Xag&7#y0Im1S51WOO£3b3;Pooling=False;Encrypt=True;TrustServerCertificate=True",
"PortalPFMSql": "Data Source=sql.pal.local;Initial Catalog=db_PalFactoryMonitoring;Persist Security Info=True;User ID=svcSqlPalPortalServices;Password=^Q$Xag&7#y0Im1S51WOO£3b3;Pooling=False"
},
"OpcUaParpasSettings": {
"DnsName": "HEROS5-89767",
"EndpointUrl": "opc.tcp://HEROS5-89767:4840",
"ApplicationName": "MyPalOpcUa",
"ApplicationUrn": "urn:portal-job-opc-ua:MyPalOpcUa",
"SessionTimeout": 60000,
"CertPath": "C:\\Certs\\TNC\\opcua-user-cert.der",
"KeyPath": "C:\\Certs\\TNC\\opcua-user-cert.key.pem"
}
}
@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDaYPzg80CGYyMW
OCoB3FGF9E8y9bLCIkoJXchoLNvzslFUxbaLf6+y80/DLDQLWFiUh5UI27qiddmy
x5BSkeKvmXoGgJGbYd7YyRMuHf5H8GGtRAJ/yLq4LcFibqibWaogZWusIrv+yTM5
+lfrs0s9x5Y2auby2NNY9hPBXp5RxUyjGHpuvCOI4Q56HFWgl9jzBZeqlH2wjm3+
MuOe/NNFg44siLWSvoeZW+oTEc045gtuYvkx61a3WhZEM6CNjireSGHzxiahYbbf
5rQrsx+Km6H+TFjxy7YL2O0ST1JhIkLVdGJcuK9ibzQB92CxakofGZlCyA4zk9iP
jOS4NlyfAgMBAAECggEAAZPEanYsonaCK7LpesH173BoR1ycQegFfjPTMrgVjpkH
Gq74NoxhidAAD3ojlha5QmQIS4bAE6mjkjWmxoc53+giiCbS5mW6j6OZeTJ2QlwW
GIOZO7BeHjPBEHjuzCXFo3OYEieIvA+v8wc/2KVJhyoIh7QV9EMPTmEt8K5CQ8zp
kotoFg9HDSjWoyua0iAzlS+7GPYRsz7xZRGsey7z2QN/xjlJsvdpZmgH1nnyFl3y
7wIJDqP2U7vS/qjwvMP8Mrk9UXyIAvbH19DNn6ROkeqJEQUVu6722h16HHGGOUcp
JnGMXq3ybCxkb3ZHTdwAGKyUKRjV8MybNPBj5FjLYQKBgQD/QgaP+bJfIiyFWVeZ
sAKdAla/cW5IWSYOEGpb1HP/2z6ZJBlHYScjsD4osjB1VpXJW8FShMh+ORfJl/to
kr8pN0S/T4qAOxcVCxBmMuh+UUYWWnwnsfUXi0pk/sQNhOYDgQCbUg0NoaLif3ba
UBRxPyS6vAeanNY5obcw80JyfQKBgQDbA4PfkYGYLRMc9EnJbSVBrf1LOq6BEdTr
GY4AehMVxu1GT0CZUuIwcsx/HwOnCfSxVHN2t2bUVLZeFBjQqDWbOsnsKhVXWT5M
Di2A7l9tivHb7Oz9okFqt+fUMr/pNC9lZy8w7JKEe31i5UVWthVUizg0J77PAkDc
1NA0c9C6SwKBgAbzzGv1eBdBPgcvxMQJ2DhgjO5P75oG25N8fPkdUz9/wDe5lPqt
ubwuG7NODyXTAudmGWDe/vr5IR27hvx1KsG7oKK5TuNpOJq5H2w5LL3sBsWrF0CZ
hzxp7c/MZJidqwojZFnWpUZexan3oMwXbEcdWim/31Elvmv5bJzns0KdAoGBAMPn
qwhKYX+7ogMeSPpSFSdg+NdYEEwHpUr+utSWXYf3PrrLnV8Ikqb/qQh0t5GtCCGv
BvFEMEjx1YbltyS9seW+emwzYI+Xlm/1pqJTlyynQpyUm5BsmNNa2ZYoJx30vgiY
ec/rbUvwIkJaDuH3UbEkLwwIGVeWDmr6OZsRlb1tAoGAZ7hOF/ZxB6UiBSgN/I4R
jaometwhsevRwFg/fPrMsVNaVYAZdhMoti6uMAu5eQ7tyhlXmlHKqWPOX78wtVS6
V4eEfm+krUX35/mRv2FXR9c4ekzO6wUfbGWwqoZ2KCzt53wmIPo990LAStYvxQCx
pJHHy7vhf926du5EKMGDfqQ=
-----END PRIVATE KEY-----
@@ -0,0 +1,118 @@
Private-Key: (2048 bit, 2 primes)
modulus:
00:da:60:fc:e0:f3:40:86:63:23:16:38:2a:01:dc:
51:85:f4:4f:32:f5:b2:c2:22:4a:09:5d:c8:68:2c:
db:f3:b2:51:54:c5:b6:8b:7f:af:b2:f3:4f:c3:2c:
34:0b:58:58:94:87:95:08:db:ba:a2:75:d9:b2:c7:
90:52:91:e2:af:99:7a:06:80:91:9b:61:de:d8:c9:
13:2e:1d:fe:47:f0:61:ad:44:02:7f:c8:ba:b8:2d:
c1:62:6e:a8:9b:59:aa:20:65:6b:ac:22:bb:fe:c9:
33:39:fa:57:eb:b3:4b:3d:c7:96:36:6a:e6:f2:d8:
d3:58:f6:13:c1:5e:9e:51:c5:4c:a3:18:7a:6e:bc:
23:88:e1:0e:7a:1c:55:a0:97:d8:f3:05:97:aa:94:
7d:b0:8e:6d:fe:32:e3:9e:fc:d3:45:83:8e:2c:88:
b5:92:be:87:99:5b:ea:13:11:cd:38:e6:0b:6e:62:
f9:31:eb:56:b7:5a:16:44:33:a0:8d:8e:2a:de:48:
61:f3:c6:26:a1:61:b6:df:e6:b4:2b:b3:1f:8a:9b:
a1:fe:4c:58:f1:cb:b6:0b:d8:ed:12:4f:52:61:22:
42:d5:74:62:5c:b8:af:62:6f:34:01:f7:60:b1:6a:
4a:1f:19:99:42:c8:0e:33:93:d8:8f:8c:e4:b8:36:
5c:9f
publicExponent: 65537 (0x10001)
privateExponent:
01:93:c4:6a:76:2c:a2:76:82:2b:b2:e9:7a:c1:f5:
ef:70:68:47:5c:9c:41:e8:05:7e:33:d3:32:b8:15:
8e:99:07:1a:ae:f8:36:8c:61:89:d0:00:0f:7a:23:
96:16:b9:42:64:08:4b:86:c0:13:a9:a3:92:35:a6:
c6:87:39:df:e8:22:88:26:d2:e6:65:ba:8f:a3:99:
79:32:76:42:5c:16:18:83:99:3b:b0:5e:1e:33:c1:
10:78:ee:cc:25:c5:a3:73:98:12:27:88:bc:0f:af:
f3:07:3f:d8:a5:49:87:2a:08:87:b4:15:f4:43:0f:
4e:61:2d:f0:ae:42:43:cc:e9:92:8b:68:16:0f:47:
0d:28:d6:a3:2b:9a:d2:20:33:95:2f:bb:18:f6:11:
b3:3e:f1:65:11:ac:7b:2e:f3:d9:03:7f:c6:39:49:
b2:f7:69:66:68:07:d6:79:f2:16:5d:f2:ef:02:09:
0e:a3:f6:53:bb:d2:fe:a8:f0:bc:c3:fc:32:b9:3d:
51:7c:88:02:f6:c7:d7:d0:cd:9f:a4:4e:91:ea:89:
11:05:15:bb:ae:f6:da:1d:7a:1c:71:86:39:47:29:
26:71:8c:5e:ad:f2:6c:2c:64:6f:76:47:4d:dc:00:
18:ac:94:29:18:d5:f0:cc:9b:34:f0:63:e4:58:cb:
61
prime1:
00:ff:42:06:8f:f9:b2:5f:22:2c:85:59:57:99:b0:
02:9d:02:56:bf:71:6e:48:59:26:0e:10:6a:5b:d4:
73:ff:db:3e:99:24:19:47:61:27:23:b0:3e:28:b2:
30:75:56:95:c9:5b:c1:52:84:c8:7e:39:17:c9:97:
fb:68:92:bf:29:37:44:bf:4f:8a:80:3b:17:15:0b:
10:66:32:e8:7e:51:46:16:5a:7c:27:b1:f5:17:8b:
4a:64:fe:c4:0d:84:e6:03:81:00:9b:52:0d:0d:a1:
a2:e2:7f:76:da:50:14:71:3f:24:ba:bc:07:9a:9c:
d6:39:a1:b7:30:f3:42:72:7d
prime2:
00:db:03:83:df:91:81:98:2d:13:1c:f4:49:c9:6d:
25:41:ad:fd:4b:3a:ae:81:11:d4:eb:19:8e:00:7a:
13:15:c6:ed:46:4f:40:99:52:e2:30:72:cc:7f:1f:
03:a7:09:f4:b1:54:73:76:b7:66:d4:54:b6:5e:14:
18:d0:a8:35:9b:3a:c9:ec:2a:15:57:59:3e:4c:0e:
2d:80:ee:5f:6d:8a:f1:db:ec:ec:fd:a2:41:6a:b7:
e7:d4:32:bf:e9:34:2f:65:67:2f:30:ec:92:84:7b:
7d:62:e5:45:56:b6:15:54:8b:38:34:27:be:cf:02:
40:dc:d4:d0:34:73:d0:ba:4b
exponent1:
06:f3:cc:6b:f5:78:17:41:3e:07:2f:c4:c4:09:d8:
38:60:8c:ee:4f:ef:9a:06:db:93:7c:7c:f9:1d:53:
3f:7f:c0:37:b9:94:fa:ad:b9:bc:2e:1b:b3:4e:0f:
25:d3:02:e7:66:19:60:de:fe:fa:f9:21:1d:bb:86:
fc:75:2a:c1:bb:a0:a2:b9:4e:e3:69:38:9a:b9:1f:
6c:39:2c:bd:ec:06:c5:ab:17:40:99:87:3c:69:ed:
cf:cc:64:98:9d:ab:0a:23:64:59:d6:a5:46:5e:c5:
a9:f7:a0:cc:17:6c:47:1d:5a:29:bf:df:51:25:be:
6b:f9:6c:9c:e7:b3:42:9d
exponent2:
00:c3:e7:ab:08:4a:61:7f:bb:a2:03:1e:48:fa:52:
15:27:60:f8:d7:58:10:4c:07:a5:4a:fe:ba:d4:96:
5d:87:f7:3e:ba:cb:9d:5f:08:92:a6:ff:a9:08:74:
b7:91:ad:08:21:af:06:f1:44:30:48:f1:d5:86:e5:
b7:24:bd:b1:e5:be:7a:6c:33:60:8f:97:96:6f:f5:
a6:a2:53:97:2c:a7:42:9c:94:9b:90:6c:98:d3:5a:
d9:96:28:27:1d:f4:be:08:98:79:cf:eb:6d:4b:f0:
22:42:5a:0e:e1:f7:51:b1:24:2f:0c:08:19:57:96:
0e:6a:fa:39:9b:11:95:bd:6d
coefficient:
67:b8:4e:17:f6:71:07:a5:22:05:28:0d:fc:8e:11:
8d:aa:26:7a:dc:21:b1:eb:d1:c0:58:3f:7c:fa:cc:
b1:53:5a:55:80:19:76:13:28:b6:2e:ae:30:0b:b9:
79:0e:ed:ca:19:57:9a:51:ca:a9:63:ce:5f:bf:30:
b5:54:ba:57:87:84:7e:6f:a4:ad:45:f7:e7:f9:91:
bf:61:57:47:d7:38:7a:4c:ce:eb:05:1f:6c:65:b0:
aa:86:76:28:2c:ed:e7:7c:26:20:fa:3d:f7:42:c0:
4a:d6:2f:c5:00:b1:a4:91:c7:cb:bb:e1:7f:dd:ba:
76:ee:44:28:c1:83:7e:a4
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDaYPzg80CGYyMW
OCoB3FGF9E8y9bLCIkoJXchoLNvzslFUxbaLf6+y80/DLDQLWFiUh5UI27qiddmy
x5BSkeKvmXoGgJGbYd7YyRMuHf5H8GGtRAJ/yLq4LcFibqibWaogZWusIrv+yTM5
+lfrs0s9x5Y2auby2NNY9hPBXp5RxUyjGHpuvCOI4Q56HFWgl9jzBZeqlH2wjm3+
MuOe/NNFg44siLWSvoeZW+oTEc045gtuYvkx61a3WhZEM6CNjireSGHzxiahYbbf
5rQrsx+Km6H+TFjxy7YL2O0ST1JhIkLVdGJcuK9ibzQB92CxakofGZlCyA4zk9iP
jOS4NlyfAgMBAAECggEAAZPEanYsonaCK7LpesH173BoR1ycQegFfjPTMrgVjpkH
Gq74NoxhidAAD3ojlha5QmQIS4bAE6mjkjWmxoc53+giiCbS5mW6j6OZeTJ2QlwW
GIOZO7BeHjPBEHjuzCXFo3OYEieIvA+v8wc/2KVJhyoIh7QV9EMPTmEt8K5CQ8zp
kotoFg9HDSjWoyua0iAzlS+7GPYRsz7xZRGsey7z2QN/xjlJsvdpZmgH1nnyFl3y
7wIJDqP2U7vS/qjwvMP8Mrk9UXyIAvbH19DNn6ROkeqJEQUVu6722h16HHGGOUcp
JnGMXq3ybCxkb3ZHTdwAGKyUKRjV8MybNPBj5FjLYQKBgQD/QgaP+bJfIiyFWVeZ
sAKdAla/cW5IWSYOEGpb1HP/2z6ZJBlHYScjsD4osjB1VpXJW8FShMh+ORfJl/to
kr8pN0S/T4qAOxcVCxBmMuh+UUYWWnwnsfUXi0pk/sQNhOYDgQCbUg0NoaLif3ba
UBRxPyS6vAeanNY5obcw80JyfQKBgQDbA4PfkYGYLRMc9EnJbSVBrf1LOq6BEdTr
GY4AehMVxu1GT0CZUuIwcsx/HwOnCfSxVHN2t2bUVLZeFBjQqDWbOsnsKhVXWT5M
Di2A7l9tivHb7Oz9okFqt+fUMr/pNC9lZy8w7JKEe31i5UVWthVUizg0J77PAkDc
1NA0c9C6SwKBgAbzzGv1eBdBPgcvxMQJ2DhgjO5P75oG25N8fPkdUz9/wDe5lPqt
ubwuG7NODyXTAudmGWDe/vr5IR27hvx1KsG7oKK5TuNpOJq5H2w5LL3sBsWrF0CZ
hzxp7c/MZJidqwojZFnWpUZexan3oMwXbEcdWim/31Elvmv5bJzns0KdAoGBAMPn
qwhKYX+7ogMeSPpSFSdg+NdYEEwHpUr+utSWXYf3PrrLnV8Ikqb/qQh0t5GtCCGv
BvFEMEjx1YbltyS9seW+emwzYI+Xlm/1pqJTlyynQpyUm5BsmNNa2ZYoJx30vgiY
ec/rbUvwIkJaDuH3UbEkLwwIGVeWDmr6OZsRlb1tAoGAZ7hOF/ZxB6UiBSgN/I4R
jaometwhsevRwFg/fPrMsVNaVYAZdhMoti6uMAu5eQ7tyhlXmlHKqWPOX78wtVS6
V4eEfm+krUX35/mRv2FXR9c4ekzO6wUfbGWwqoZ2KCzt53wmIPo990LAStYvxQCx
pJHHy7vhf926du5EKMGDfqQ=
-----END PRIVATE KEY-----
@@ -0,0 +1,839 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v10.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v10.0": {
"console_opcua_sgdn_tornio/1.0.0": {
"dependencies": {
"Microsoft.Extensions.Hosting": "10.0.0",
"OPCFoundation.NetStandard.Opc.Ua": "1.5.377.22",
"OPCFoundation.NetStandard.Opc.Ua.Client": "1.5.377.22",
"OPCFoundation.NetStandard.Opc.Ua.Configuration": "1.5.377.22",
"OPCFoundation.NetStandard.Opc.Ua.Core": "1.5.377.22",
"OPCFoundation.NetStandard.Opc.Ua.Security.Certificates": "1.5.377.22",
"Serilog": "4.3.0",
"Serilog.Sinks.Graylog": "3.1.1"
},
"runtime": {
"console_opcua_sgdn_tornio.dll": {}
}
},
"BitFaster.Caching/2.5.4": {
"runtime": {
"lib/net6.0/BitFaster.Caching.dll": {
"assemblyVersion": "2.5.4.0",
"fileVersion": "2.5.4.0"
}
}
},
"BouncyCastle.Cryptography/2.6.2": {
"runtime": {
"lib/net6.0/BouncyCastle.Cryptography.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.6.2.46322"
}
}
},
"Microsoft.Extensions.Configuration/10.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "10.0.0",
"Microsoft.Extensions.Primitives": "10.0.0"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Configuration.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Microsoft.Extensions.Configuration.Abstractions/10.0.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "10.0.0"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Configuration.Abstractions.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Microsoft.Extensions.Configuration.Binder/10.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration": "10.0.0",
"Microsoft.Extensions.Configuration.Abstractions": "10.0.0"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Configuration.Binder.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Microsoft.Extensions.Configuration.CommandLine/10.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration": "10.0.0",
"Microsoft.Extensions.Configuration.Abstractions": "10.0.0"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Configuration.CommandLine.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Microsoft.Extensions.Configuration.EnvironmentVariables/10.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration": "10.0.0",
"Microsoft.Extensions.Configuration.Abstractions": "10.0.0"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Configuration.EnvironmentVariables.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Microsoft.Extensions.Configuration.FileExtensions/10.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration": "10.0.0",
"Microsoft.Extensions.Configuration.Abstractions": "10.0.0",
"Microsoft.Extensions.FileProviders.Abstractions": "10.0.0",
"Microsoft.Extensions.FileProviders.Physical": "10.0.0",
"Microsoft.Extensions.Primitives": "10.0.0"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Configuration.FileExtensions.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Microsoft.Extensions.Configuration.Json/10.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration": "10.0.0",
"Microsoft.Extensions.Configuration.Abstractions": "10.0.0",
"Microsoft.Extensions.Configuration.FileExtensions": "10.0.0",
"Microsoft.Extensions.FileProviders.Abstractions": "10.0.0"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Configuration.Json.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Microsoft.Extensions.Configuration.UserSecrets/10.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "10.0.0",
"Microsoft.Extensions.Configuration.Json": "10.0.0",
"Microsoft.Extensions.FileProviders.Abstractions": "10.0.0",
"Microsoft.Extensions.FileProviders.Physical": "10.0.0"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Configuration.UserSecrets.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Microsoft.Extensions.DependencyInjection/10.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.DependencyInjection.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": {
"runtime": {
"lib/net10.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Microsoft.Extensions.Diagnostics/10.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration": "10.0.0",
"Microsoft.Extensions.Diagnostics.Abstractions": "10.0.0",
"Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.0"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Diagnostics.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Microsoft.Extensions.Diagnostics.Abstractions/10.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0",
"Microsoft.Extensions.Options": "10.0.0"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Diagnostics.Abstractions.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Microsoft.Extensions.FileProviders.Abstractions/10.0.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "10.0.0"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.FileProviders.Abstractions.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Microsoft.Extensions.FileProviders.Physical/10.0.0": {
"dependencies": {
"Microsoft.Extensions.FileProviders.Abstractions": "10.0.0",
"Microsoft.Extensions.FileSystemGlobbing": "10.0.0",
"Microsoft.Extensions.Primitives": "10.0.0"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.FileProviders.Physical.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Microsoft.Extensions.FileSystemGlobbing/10.0.0": {
"runtime": {
"lib/net10.0/Microsoft.Extensions.FileSystemGlobbing.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Microsoft.Extensions.Hosting/10.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration": "10.0.0",
"Microsoft.Extensions.Configuration.Abstractions": "10.0.0",
"Microsoft.Extensions.Configuration.Binder": "10.0.0",
"Microsoft.Extensions.Configuration.CommandLine": "10.0.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "10.0.0",
"Microsoft.Extensions.Configuration.FileExtensions": "10.0.0",
"Microsoft.Extensions.Configuration.Json": "10.0.0",
"Microsoft.Extensions.Configuration.UserSecrets": "10.0.0",
"Microsoft.Extensions.DependencyInjection": "10.0.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0",
"Microsoft.Extensions.Diagnostics": "10.0.0",
"Microsoft.Extensions.FileProviders.Abstractions": "10.0.0",
"Microsoft.Extensions.FileProviders.Physical": "10.0.0",
"Microsoft.Extensions.Hosting.Abstractions": "10.0.0",
"Microsoft.Extensions.Logging": "10.0.0",
"Microsoft.Extensions.Logging.Abstractions": "10.0.0",
"Microsoft.Extensions.Logging.Configuration": "10.0.0",
"Microsoft.Extensions.Logging.Console": "10.0.0",
"Microsoft.Extensions.Logging.Debug": "10.0.0",
"Microsoft.Extensions.Logging.EventLog": "10.0.0",
"Microsoft.Extensions.Logging.EventSource": "10.0.0",
"Microsoft.Extensions.Options": "10.0.0"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Hosting.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Microsoft.Extensions.Hosting.Abstractions/10.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "10.0.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0",
"Microsoft.Extensions.Diagnostics.Abstractions": "10.0.0",
"Microsoft.Extensions.FileProviders.Abstractions": "10.0.0",
"Microsoft.Extensions.Logging.Abstractions": "10.0.0"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Hosting.Abstractions.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Microsoft.Extensions.Logging/10.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "10.0.0",
"Microsoft.Extensions.Logging.Abstractions": "10.0.0",
"Microsoft.Extensions.Options": "10.0.0"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Logging.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Microsoft.Extensions.Logging.Abstractions/10.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Logging.Abstractions.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Microsoft.Extensions.Logging.Configuration/10.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration": "10.0.0",
"Microsoft.Extensions.Configuration.Abstractions": "10.0.0",
"Microsoft.Extensions.Configuration.Binder": "10.0.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0",
"Microsoft.Extensions.Logging": "10.0.0",
"Microsoft.Extensions.Logging.Abstractions": "10.0.0",
"Microsoft.Extensions.Options": "10.0.0",
"Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.0"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Logging.Configuration.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Microsoft.Extensions.Logging.Console/10.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0",
"Microsoft.Extensions.Logging": "10.0.0",
"Microsoft.Extensions.Logging.Abstractions": "10.0.0",
"Microsoft.Extensions.Logging.Configuration": "10.0.0",
"Microsoft.Extensions.Options": "10.0.0"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Logging.Console.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Microsoft.Extensions.Logging.Debug/10.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0",
"Microsoft.Extensions.Logging": "10.0.0",
"Microsoft.Extensions.Logging.Abstractions": "10.0.0"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Logging.Debug.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Microsoft.Extensions.Logging.EventLog/10.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0",
"Microsoft.Extensions.Logging": "10.0.0",
"Microsoft.Extensions.Logging.Abstractions": "10.0.0",
"Microsoft.Extensions.Options": "10.0.0",
"System.Diagnostics.EventLog": "10.0.0"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Logging.EventLog.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Microsoft.Extensions.Logging.EventSource/10.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0",
"Microsoft.Extensions.Logging": "10.0.0",
"Microsoft.Extensions.Logging.Abstractions": "10.0.0",
"Microsoft.Extensions.Options": "10.0.0",
"Microsoft.Extensions.Primitives": "10.0.0"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Logging.EventSource.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Microsoft.Extensions.Options/10.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0",
"Microsoft.Extensions.Primitives": "10.0.0"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Options.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Microsoft.Extensions.Options.ConfigurationExtensions/10.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "10.0.0",
"Microsoft.Extensions.Configuration.Binder": "10.0.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0",
"Microsoft.Extensions.Options": "10.0.0",
"Microsoft.Extensions.Primitives": "10.0.0"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Microsoft.Extensions.Primitives/10.0.0": {
"runtime": {
"lib/net10.0/Microsoft.Extensions.Primitives.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Newtonsoft.Json/13.0.3": {
"runtime": {
"lib/net6.0/Newtonsoft.Json.dll": {
"assemblyVersion": "13.0.0.0",
"fileVersion": "13.0.3.27908"
}
}
},
"OPCFoundation.NetStandard.Opc.Ua/1.5.377.22": {
"dependencies": {
"OPCFoundation.NetStandard.Opc.Ua.Client": "1.5.377.22",
"OPCFoundation.NetStandard.Opc.Ua.Configuration": "1.5.377.22",
"OPCFoundation.NetStandard.Opc.Ua.Core": "1.5.377.22",
"OPCFoundation.NetStandard.Opc.Ua.Gds.Client.Common": "1.5.377.22",
"OPCFoundation.NetStandard.Opc.Ua.Gds.Server.Common": "1.5.377.22",
"OPCFoundation.NetStandard.Opc.Ua.Security.Certificates": "1.5.377.22",
"OPCFoundation.NetStandard.Opc.Ua.Server": "1.5.377.22"
}
},
"OPCFoundation.NetStandard.Opc.Ua.Client/1.5.377.22": {
"dependencies": {
"BitFaster.Caching": "2.5.4",
"OPCFoundation.NetStandard.Opc.Ua.Configuration": "1.5.377.22",
"OPCFoundation.NetStandard.Opc.Ua.Core": "1.5.377.22"
},
"runtime": {
"lib/net9.0/Opc.Ua.Client.dll": {
"assemblyVersion": "1.5.377.0",
"fileVersion": "1.5.377.22"
}
}
},
"OPCFoundation.NetStandard.Opc.Ua.Configuration/1.5.377.22": {
"dependencies": {
"OPCFoundation.NetStandard.Opc.Ua.Core": "1.5.377.22"
},
"runtime": {
"lib/net9.0/Opc.Ua.Configuration.dll": {
"assemblyVersion": "1.5.377.0",
"fileVersion": "1.5.377.22"
}
}
},
"OPCFoundation.NetStandard.Opc.Ua.Core/1.5.377.22": {
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "10.0.0",
"Newtonsoft.Json": "13.0.3",
"OPCFoundation.NetStandard.Opc.Ua.Security.Certificates": "1.5.377.22"
},
"runtime": {
"lib/net9.0/Opc.Ua.Core.dll": {
"assemblyVersion": "1.5.377.0",
"fileVersion": "1.5.377.22"
}
}
},
"OPCFoundation.NetStandard.Opc.Ua.Gds.Client.Common/1.5.377.22": {
"dependencies": {
"OPCFoundation.NetStandard.Opc.Ua.Client": "1.5.377.22",
"OPCFoundation.NetStandard.Opc.Ua.Core": "1.5.377.22"
},
"runtime": {
"lib/net9.0/Opc.Ua.Gds.Client.Common.dll": {
"assemblyVersion": "1.5.377.0",
"fileVersion": "1.5.377.22"
}
}
},
"OPCFoundation.NetStandard.Opc.Ua.Gds.Server.Common/1.5.377.22": {
"dependencies": {
"BouncyCastle.Cryptography": "2.6.2",
"OPCFoundation.NetStandard.Opc.Ua.Core": "1.5.377.22",
"OPCFoundation.NetStandard.Opc.Ua.Server": "1.5.377.22"
},
"runtime": {
"lib/net9.0/Opc.Ua.Gds.Server.Common.dll": {
"assemblyVersion": "1.5.377.0",
"fileVersion": "1.5.377.22"
}
}
},
"OPCFoundation.NetStandard.Opc.Ua.Security.Certificates/1.5.377.22": {
"runtime": {
"lib/net9.0/Opc.Ua.Security.Certificates.dll": {
"assemblyVersion": "1.5.377.0",
"fileVersion": "1.5.377.22"
}
}
},
"OPCFoundation.NetStandard.Opc.Ua.Server/1.5.377.22": {
"dependencies": {
"OPCFoundation.NetStandard.Opc.Ua.Configuration": "1.5.377.22",
"OPCFoundation.NetStandard.Opc.Ua.Core": "1.5.377.22"
},
"runtime": {
"lib/net9.0/Opc.Ua.Server.dll": {
"assemblyVersion": "1.5.377.0",
"fileVersion": "1.5.377.22"
}
}
},
"Serilog/4.3.0": {
"runtime": {
"lib/net9.0/Serilog.dll": {
"assemblyVersion": "4.3.0.0",
"fileVersion": "4.3.0.0"
}
}
},
"Serilog.Sinks.Graylog/3.1.1": {
"runtime": {
"lib/net7.0/Serilog.Sinks.Graylog.Core.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
},
"lib/net7.0/Serilog.Sinks.Graylog.dll": {
"assemblyVersion": "3.0.0.0",
"fileVersion": "3.0.0.0"
}
}
},
"System.Diagnostics.EventLog/10.0.0": {
"runtime": {
"lib/net10.0/System.Diagnostics.EventLog.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
},
"runtimeTargets": {
"runtimes/win/lib/net10.0/System.Diagnostics.EventLog.Messages.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "10.0.0.0",
"fileVersion": "0.0.0.0"
},
"runtimes/win/lib/net10.0/System.Diagnostics.EventLog.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
}
}
},
"libraries": {
"console_opcua_sgdn_tornio/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"BitFaster.Caching/2.5.4": {
"type": "package",
"serviceable": true,
"sha512": "sha512-1QroTY1PVCZOSG9FnkkCrmCKk/+bZCgI/YXq376HnYwUDJ4Ho0EaV4YaA/5v5WYLnwIwIO7RZkdWbg9pxIpueQ==",
"path": "bitfaster.caching/2.5.4",
"hashPath": "bitfaster.caching.2.5.4.nupkg.sha512"
},
"BouncyCastle.Cryptography/2.6.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-7oWOcvnntmMKNzDLsdxAYqApt+AjpRpP2CShjMfIa3umZ42UQMvH0tl1qAliYPNYO6vTdcGMqnRrCPmsfzTI1w==",
"path": "bouncycastle.cryptography/2.6.2",
"hashPath": "bouncycastle.cryptography.2.6.2.nupkg.sha512"
},
"Microsoft.Extensions.Configuration/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-H4SWETCh/cC5L1WtWchHR6LntGk3rDTTznZMssr4cL8IbDmMWBxY+MOGDc/ASnqNolLKPIWHWeuC1ddiL/iNPw==",
"path": "microsoft.extensions.configuration/10.0.0",
"hashPath": "microsoft.extensions.configuration.10.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Abstractions/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-d2kDKnCsJvY7mBVhcjPSp9BkJk48DsaHPg5u+Oy4f8XaOqnEedRy/USyvnpHL92wpJ6DrTPy7htppUUzskbCXQ==",
"path": "microsoft.extensions.configuration.abstractions/10.0.0",
"hashPath": "microsoft.extensions.configuration.abstractions.10.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Binder/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-tMF9wNh+hlyYDWB8mrFCQHQmWHlRosol1b/N2Jrefy1bFLnuTlgSYmPyHNmz8xVQgs7DpXytBRWxGhG+mSTp0g==",
"path": "microsoft.extensions.configuration.binder/10.0.0",
"hashPath": "microsoft.extensions.configuration.binder.10.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.CommandLine/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-CRj5clwZciVs46GMhAthkFq3+JiNM15Bz9CRlCZLBmRdggD6RwoBphRJ+EUDK2f+cZZ1L2zqVaQrn1KueoU5Kg==",
"path": "microsoft.extensions.configuration.commandline/10.0.0",
"hashPath": "microsoft.extensions.configuration.commandline.10.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.EnvironmentVariables/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-TmFegsI/uCdwMBD4yKpmO+OkjVNHQL49Dh/ep83NI5rPUEoBK9OdsJo1zURc1A2FuS/R/Pos3wsTjlyLnguBLA==",
"path": "microsoft.extensions.configuration.environmentvariables/10.0.0",
"hashPath": "microsoft.extensions.configuration.environmentvariables.10.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.FileExtensions/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-LqCTyF0twrG4tyEN6PpSC5ewRBDwCBazRUfCOdRddwaQ3n2S57GDDeYOlTLcbV/V2dxSSZWg5Ofr48h6BsBmxw==",
"path": "microsoft.extensions.configuration.fileextensions/10.0.0",
"hashPath": "microsoft.extensions.configuration.fileextensions.10.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Json/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-BIOPTEAZoeWbHlDT9Zudu+rpecZizFwhdIFRiyZKDml7JbayXmfTXKUt+ezifsSXfBkWDdJM10oDOxo8pufEng==",
"path": "microsoft.extensions.configuration.json/10.0.0",
"hashPath": "microsoft.extensions.configuration.json.10.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.UserSecrets/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-B4qHB6gQ2B3I52YRohSV7wetp01BQzi8jDmrtiVm6e4l8vH5vjqwxWcR5wumGWjdBkj1asJLLsDIocdyTQSP0A==",
"path": "microsoft.extensions.configuration.usersecrets/10.0.0",
"hashPath": "microsoft.extensions.configuration.usersecrets.10.0.0.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-f0RBabswJq+gRu5a+hWIobrLWiUYPKMhCD9WO3sYBAdSy3FFH14LMvLVFZc2kPSCimBLxSuitUhsd6tb0TAY6A==",
"path": "microsoft.extensions.dependencyinjection/10.0.0",
"hashPath": "microsoft.extensions.dependencyinjection.10.0.0.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-L3AdmZ1WOK4XXT5YFPEwyt0ep6l8lGIPs7F5OOBZc77Zqeo01Of7XXICy47628sdVl0v/owxYJTe86DTgFwKCA==",
"path": "microsoft.extensions.dependencyinjection.abstractions/10.0.0",
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.10.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Diagnostics/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-xjkxIPgrT0mKTfBwb+CVqZnRchyZgzKIfDQOp8z+WUC6vPe3WokIf71z+hJPkH0YBUYJwa7Z/al1R087ib9oiw==",
"path": "microsoft.extensions.diagnostics/10.0.0",
"hashPath": "microsoft.extensions.diagnostics.10.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Diagnostics.Abstractions/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-SfK89ytD61S7DgzorFljSkUeluC1ncn6dtZgwc0ot39f/BEYWBl5jpgvodxduoYAs1d9HG8faCDRZxE95UMo2A==",
"path": "microsoft.extensions.diagnostics.abstractions/10.0.0",
"hashPath": "microsoft.extensions.diagnostics.abstractions.10.0.0.nupkg.sha512"
},
"Microsoft.Extensions.FileProviders.Abstractions/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-/ppSdehKk3fuXjlqCDgSOtjRK/pSHU8eWgzSHfHdwVm5BP4Dgejehkw+PtxKG2j98qTDEHDst2Y99aNsmJldmw==",
"path": "microsoft.extensions.fileproviders.abstractions/10.0.0",
"hashPath": "microsoft.extensions.fileproviders.abstractions.10.0.0.nupkg.sha512"
},
"Microsoft.Extensions.FileProviders.Physical/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-UZUQ74lQMmvcprlG8w+XpxBbyRDQqfb7GAnccITw32hdkUBlmm9yNC4xl4aR9YjgV3ounZcub194sdmLSfBmPA==",
"path": "microsoft.extensions.fileproviders.physical/10.0.0",
"hashPath": "microsoft.extensions.fileproviders.physical.10.0.0.nupkg.sha512"
},
"Microsoft.Extensions.FileSystemGlobbing/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-5hfVl/e+bx1px2UkN+1xXhd3hu7Ui6ENItBzckFaRDQXfr+SHT/7qrCDrlQekCF/PBtEu2vtk87U2+gDEF8EhQ==",
"path": "microsoft.extensions.filesystemglobbing/10.0.0",
"hashPath": "microsoft.extensions.filesystemglobbing.10.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Hosting/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-yKJiVdXkSfe9foojGpBRbuDPQI8YD71IO/aE8ehGjRHE0VkEF/YWkW6StthwuFF146pc2lypZrpk/Tks6Plwhw==",
"path": "microsoft.extensions.hosting/10.0.0",
"hashPath": "microsoft.extensions.hosting.10.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Hosting.Abstractions/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-KrN6TGFwCwqOkLLk/idW/XtDQh+8In+CL9T4M1Dx+5ScsjTq4TlVbal8q532m82UYrMr6RiQJF2HvYCN0QwVsA==",
"path": "microsoft.extensions.hosting.abstractions/10.0.0",
"hashPath": "microsoft.extensions.hosting.abstractions.10.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Logging/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-BStFkd5CcnEtarlcgYDBcFzGYCuuNMzPs02wN3WBsOFoYIEmYoUdAiU+au6opzoqfTYJsMTW00AeqDdnXH2CvA==",
"path": "microsoft.extensions.logging/10.0.0",
"hashPath": "microsoft.extensions.logging.10.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Logging.Abstractions/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-FU/IfjDfwaMuKr414SSQNTIti/69bHEMb+QKrskRb26oVqpx3lNFXMjs/RC9ZUuhBhcwDM2BwOgoMw+PZ+beqQ==",
"path": "microsoft.extensions.logging.abstractions/10.0.0",
"hashPath": "microsoft.extensions.logging.abstractions.10.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Logging.Configuration/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-j8zcwhS6bYB6FEfaY3nYSgHdpiL2T+/V3xjpHtslVAegyI1JUbB9yAt/BFdvZdsNbY0Udm4xFtvfT/hUwcOOOg==",
"path": "microsoft.extensions.logging.configuration/10.0.0",
"hashPath": "microsoft.extensions.logging.configuration.10.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Logging.Console/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-treWetuksp8LVb09fCJ5zNhNJjyDkqzVm83XxcrlWQnAdXznR140UUXo8PyEPBvFlHhjKhFQZEOP3Sk/ByCvEw==",
"path": "microsoft.extensions.logging.console/10.0.0",
"hashPath": "microsoft.extensions.logging.console.10.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Logging.Debug/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-A/4vBtVaySLBGj4qluye+KSbeVCCMa6GcTbxf2YgnSDHs9b9105+VojBJ1eJPel8F1ny0JOh+Ci3vgCKn69tNQ==",
"path": "microsoft.extensions.logging.debug/10.0.0",
"hashPath": "microsoft.extensions.logging.debug.10.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Logging.EventLog/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-EWda5nSXhzQZr3yJ3+XgIApOek+Hm+txhWCEzWNVPp/OfimL4qmvctgXu87m+S2RXw/AoUP8aLMNicJ2KWblVA==",
"path": "microsoft.extensions.logging.eventlog/10.0.0",
"hashPath": "microsoft.extensions.logging.eventlog.10.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Logging.EventSource/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-+Qc+kgoJi1w2A/Jm+7h04LcK2JoJkwAxKg7kBakkNRcemTmRGocqPa7rVNVGorTYruFrUS25GwkFNtOECnjhXg==",
"path": "microsoft.extensions.logging.eventsource/10.0.0",
"hashPath": "microsoft.extensions.logging.eventsource.10.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Options/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-8oCAgXOow5XDrY9HaXX1QmH3ORsyZO/ANVHBlhLyCeWTH5Sg4UuqZeOTWJi6484M+LqSx0RqQXDJtdYy2BNiLQ==",
"path": "microsoft.extensions.options/10.0.0",
"hashPath": "microsoft.extensions.options.10.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Options.ConfigurationExtensions/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-tL9cSl3maS5FPzp/3MtlZI21ExWhni0nnUCF8HY4npTsINw45n9SNDbkKXBMtFyUFGSsQep25fHIDN4f/Vp3AQ==",
"path": "microsoft.extensions.options.configurationextensions/10.0.0",
"hashPath": "microsoft.extensions.options.configurationextensions.10.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Primitives/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-inRnbpCS0nwO/RuoZIAqxQUuyjaknOOnCEZB55KSMMjRhl0RQDttSmLSGsUJN3RQ3ocf5NDLFd2mOQViHqMK5w==",
"path": "microsoft.extensions.primitives/10.0.0",
"hashPath": "microsoft.extensions.primitives.10.0.0.nupkg.sha512"
},
"Newtonsoft.Json/13.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==",
"path": "newtonsoft.json/13.0.3",
"hashPath": "newtonsoft.json.13.0.3.nupkg.sha512"
},
"OPCFoundation.NetStandard.Opc.Ua/1.5.377.22": {
"type": "package",
"serviceable": true,
"sha512": "sha512-+qlOVHFEbpmL6MgXcML9yLf10rCQ3Lkr9rqcuhBMK+KFu3OXR/NGWMiqZtDf3luDx4CppSnWV9r8lW8rG2eOqw==",
"path": "opcfoundation.netstandard.opc.ua/1.5.377.22",
"hashPath": "opcfoundation.netstandard.opc.ua.1.5.377.22.nupkg.sha512"
},
"OPCFoundation.NetStandard.Opc.Ua.Client/1.5.377.22": {
"type": "package",
"serviceable": true,
"sha512": "sha512-jMmCp7tuWCT0mVLtPQ80fAK2EuJ3+S+RJx6xml1kjb3NnBIthS6UJLjgJgUVO1tK9H/NgqI3TOmY92uv5E8JWQ==",
"path": "opcfoundation.netstandard.opc.ua.client/1.5.377.22",
"hashPath": "opcfoundation.netstandard.opc.ua.client.1.5.377.22.nupkg.sha512"
},
"OPCFoundation.NetStandard.Opc.Ua.Configuration/1.5.377.22": {
"type": "package",
"serviceable": true,
"sha512": "sha512-XMY7TSZkqvzx9qUJWpxw38UO+2Z4Qt1pKvq5bVOjRpnTM/xQ4JWSfpYghtSc6Ud3IUConwkn8E/aPRRYMGgNOA==",
"path": "opcfoundation.netstandard.opc.ua.configuration/1.5.377.22",
"hashPath": "opcfoundation.netstandard.opc.ua.configuration.1.5.377.22.nupkg.sha512"
},
"OPCFoundation.NetStandard.Opc.Ua.Core/1.5.377.22": {
"type": "package",
"serviceable": true,
"sha512": "sha512-vKZG6Spa8ugUfs83dfrelc9jsIr9Q3HblM5rSJ1KNox5VizdUhNRfBk+1wEIgrxCsJpzKwlFW804h/Y/YZxcEw==",
"path": "opcfoundation.netstandard.opc.ua.core/1.5.377.22",
"hashPath": "opcfoundation.netstandard.opc.ua.core.1.5.377.22.nupkg.sha512"
},
"OPCFoundation.NetStandard.Opc.Ua.Gds.Client.Common/1.5.377.22": {
"type": "package",
"serviceable": true,
"sha512": "sha512-7u4Cl3Q7SjdLBdhMvVOHimxwqEhLeHS0eQ9YppBUWvRSTCSvwnzrWeyCY2GIVZNG9lBcSxzHSoy/OYCzd7IPhQ==",
"path": "opcfoundation.netstandard.opc.ua.gds.client.common/1.5.377.22",
"hashPath": "opcfoundation.netstandard.opc.ua.gds.client.common.1.5.377.22.nupkg.sha512"
},
"OPCFoundation.NetStandard.Opc.Ua.Gds.Server.Common/1.5.377.22": {
"type": "package",
"serviceable": true,
"sha512": "sha512-zyZT20DtEBLjWsfWcN58lwuUUkODRCG8PnglEHylylOv9NmVUqnqL9llozMRhHF/Oib740PihzgPPdQFQn6lcA==",
"path": "opcfoundation.netstandard.opc.ua.gds.server.common/1.5.377.22",
"hashPath": "opcfoundation.netstandard.opc.ua.gds.server.common.1.5.377.22.nupkg.sha512"
},
"OPCFoundation.NetStandard.Opc.Ua.Security.Certificates/1.5.377.22": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ztXUJ6YXmo3lxMAbRMlAjjeCX/yEjNLsOAyyaDgtz+5Z/63eY/1Pur1JEUX2/drpMgyyNoiRikySPNwTT2Th2w==",
"path": "opcfoundation.netstandard.opc.ua.security.certificates/1.5.377.22",
"hashPath": "opcfoundation.netstandard.opc.ua.security.certificates.1.5.377.22.nupkg.sha512"
},
"OPCFoundation.NetStandard.Opc.Ua.Server/1.5.377.22": {
"type": "package",
"serviceable": true,
"sha512": "sha512-iqPMXb4BlH7cMNUSQb4Bh9OUOfwzP9SFW6PeQ6+VM8lrW78sLuyd8VfjEHJOugcvCMKIwb1xtA9FWu24THDY4Q==",
"path": "opcfoundation.netstandard.opc.ua.server/1.5.377.22",
"hashPath": "opcfoundation.netstandard.opc.ua.server.1.5.377.22.nupkg.sha512"
},
"Serilog/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-+cDryFR0GRhsGOnZSKwaDzRRl4MupvJ42FhCE4zhQRVanX0Jpg6WuCBk59OVhVDPmab1bB+nRykAnykYELA9qQ==",
"path": "serilog/4.3.0",
"hashPath": "serilog.4.3.0.nupkg.sha512"
},
"Serilog.Sinks.Graylog/3.1.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-9qgpkXGtRdv3kH7adSEe3k4MiAWNaSgDc+/1vfIkJiPospuI+YXYErBDECvPJ/0JVnspuXQnxUCQHpDRP5hgCA==",
"path": "serilog.sinks.graylog/3.1.1",
"hashPath": "serilog.sinks.graylog.3.1.1.nupkg.sha512"
},
"System.Diagnostics.EventLog/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-uaFRda9NjtbJRkdx311eXlAA3n2em7223c1A8d1VWyl+4FL9vkG7y2lpPfBU9HYdj/9KgdRNdn1vFK8ZYCYT/A==",
"path": "system.diagnostics.eventlog/10.0.0",
"hashPath": "system.diagnostics.eventlog.10.0.0.nupkg.sha512"
}
}
}
@@ -0,0 +1,12 @@
{
"runtimeOptions": {
"tfm": "net10.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "10.0.0"
},
"configProperties": {
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
}
}
}
@@ -0,0 +1,38 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
</PropertyGroup>
<ItemGroup>
<None Remove="pki\tnc\opcua-user-cert.der" />
<None Remove="pki\tnc\opcua-user-cert.key.pem" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Hosting" Version="10.0.0" />
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.23.0" />
<PackageReference Include="OPCFoundation.NetStandard.Opc.Ua" Version="1.5.377.22" />
<PackageReference Include="OPCFoundation.NetStandard.Opc.Ua.Client" Version="1.5.377.22" />
<PackageReference Include="OPCFoundation.NetStandard.Opc.Ua.Configuration" Version="1.5.377.22" />
<PackageReference Include="OPCFoundation.NetStandard.Opc.Ua.Core" Version="1.5.377.22" />
<PackageReference Include="OPCFoundation.NetStandard.Opc.Ua.Security.Certificates" Version="1.5.377.22" />
<PackageReference Include="Serilog" Version="4.3.0" />
<PackageReference Include="Serilog.Sinks.Graylog" Version="3.1.1" />
<PackageReference Include="System.Data.SqlClient" Version="4.9.0" />
</ItemGroup>
<ItemGroup>
<Resource Include="pki\tnc\opcua-user-cert.der">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Resource>
<Resource Include="pki\tnc\opcua-user-cert.key.pem">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Resource>
</ItemGroup>
</Project>
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ActiveDebugProfile>console_opcua_sgdn_tornio</ActiveDebugProfile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
</PropertyGroup>
</Project>
@@ -0,0 +1 @@
/app/bin/Debug/net10.0/console_opcua_sgdn_tornio.dll
@@ -0,0 +1 @@
--additionalProbingPath /.nuget/fallbackpackages5 --additionalProbingPath /.nuget/fallbackpackages --additionalProbingPath /.nuget/fallbackpackages2 --additionalProbingPath /.nuget/fallbackpackages3 --additionalProbingPath /.nuget/fallbackpackages4

Some files were not shown because too many files have changed in this diff Show More