Looks like you dont have any APM services installed. Lets add some - asp.net-mvc

I am using elastic cloud. My Apm server is running on elastic cloud. But still in Kibana i can see the message "Looks like you don't have any APM services installed. Let's add some!".
My Elastic, Kibana and APM version is 7.8.1
I am trying to use APM in Kibana, and then i will add APM Agents into my Asp.net MVC application.

It's not clear in the question whether a .NET APM agent integration has been configured yet in an application that you wish to trace.
Assuming ASP.NET MVC is ASP.NET Full Framework integration
Reference Elastic.Apm.AspNetFullFramework nuget package in the application
Add ElasticApmModule to modules in web.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<modules>
<add name="ElasticApmModule" type="Elastic.Apm.AspNetFullFramework.ElasticApmModule, Elastic.Apm.AspNetFullFramework" preCondition="managedHandler" />
</modules>
</system.webServer>
</configuration>
Configure agent settings in web.config app settings
<?xml version="1.0" encoding="utf-8"?>
<!-- ... -->
<configuration>
<!-- ... -->
<appSettings>
<!-- ... -->
<add key="ElasticApm:ServerUrl" value="<APM server in Elastic Cloud URL and port>" />
<add key="ElasticApm:SecretToken" value="<APM server secret token>" />
<!-- plus any other configuration -->
</appSettings>
<!-- ... -->
</configuration>
Once this is done, you should start to see APM data for the application in the APM section of Kibana.

Related

How to deploy Dart server to IIS

I want to deploy a basic dart server that uses shelf to an IIS server.
I ran the command dart compile exe and tried to place the executable along with the web.config file in a file system. I set up the workpool with the settings I need. I have a DNS ready which is mywebsite.reu.po and set up the proper bindings for it. It gives me a 503 error something about handlers. The server host name is localhost and the port is whatever APSNET_PORT is. If nothing is found in that port, then it grabs port 4000.
Here is what I have in my web.config file
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath=".\server.exe" />
</system.webServer>
</configuration>
So I figured out the solution for this. I had to change the identifier for the pool since there are multiple admin accounts for the IIS. However, only one account has the ability to do hosting. Go to the pool, advance settings, and change the identifier with the right admin credentials.

IIS Application Pool Identity permissions reset on every Visual Studio app Publish

Following the instructions in this questions I can successfully change the permissions for the application pool identity
However, after I publish the web app...
The application pool identity's has been reset to just Read
How can I give the application pool identity full permissions even after I re-publish the web app? The same behavior also occurs if I give IUSR full permissions.
As far as I know, if you use Web Deploy from Visual Studio, the publish will overwrite the ACLs on the server by clearing them to the inherited defaults of the parent.
To avoid update ACL each time when you publish your web application.
You could try to add below command in your PublishProfiles's pubxml.
<IncludeSetAclProviderOnDestination>False</IncludeSetAclProviderOnDestination>
Details publish profile as below:
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>MSDeploy</WebPublishMethod>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<MSDeployServiceURL>http://localhost:9825/</MSDeployServiceURL>
<DeployIisAppPath>WebFormApplication</DeployIisAppPath>
<RemoteSitePhysicalPath />
<SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
<MSDeployPublishMethod>InProc</MSDeployPublishMethod>
<EnableMSDeployBackup>False</EnableMSDeployBackup>
<UserName />
<_SavePWD>False</_SavePWD>
<IncludeSetAclProviderOnDestination>False</IncludeSetAclProviderOnDestination>
<PublishDatabaseSettings>
<Objects xmlns="">
<ObjectGroup Name="DefaultConnection" Order="1" Enabled="False">
<Destination Path="" />
<Object Type="DbCodeFirst">
<Source Path="DBContext" DbContext="WebFromIdentityTest.Models.ApplicationDbContext, WebFromIdentityTest" Origin="Configuration" />
</Object>
</ObjectGroup>
</Objects>
</PublishDatabaseSettings>
</PropertyGroup>
<ItemGroup>
<MSDeployParameterValue Include="$(DeployParameterPrefix)DefaultConnection-Web.config Connection String" />
</ItemGroup>
</Project>
Then you will find the permission will not be changed after you publish the application.

Build Failing due to nuget not being able to connect to remote server

My jenkins server has proxy configured at hostname:80. I am trying to build a C# project using msbuild plugin and nuget. When I trigger a build, it fails with the below message.
https://api.nuget.org/v3/index.json: Unable to load the service index for source https://api.nuget.org/v3/index.json.
An error occurred while sending the request.
My Nuget configuration is as below:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="http_proxy" value="https://myhostname:80" />
</config>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
</packageSources>
</configuration>
Can someone please suggest a solution?

Configuring AzureTableStorage Serilog sink from config file

Can the Azure Table Storage sink for Serilog be configured via the app/Web.config like other sinks, eg Elasticsearch and Seq, which can be configured from the configuration files.
The github page for AzureTableStorage sink shows only code based configuration.
Thanks
I was able to figure this out:
<add key="serilog:using" value="Serilog.Sinks.AzureTableStorage" />
<add key="serilog:write-to:AzureTableStorageWithProperties.connectionString" value="DefaultEndpointsProtocol=https;AccountName=someaccount;AccountKey=uJeYNoa/4dKKtH3zG+7YlA==;EndpointSuffix=core.windows.net" />
<add key="serilog:write-to:AzureTableStorageWithProperties.storageTableName" value="my-logs" />
With this, am able to see the logs coming in StorageExplorer

How do you set the root page in an AppHarbor ASP.NET MVC website?

I'm publishing an ASP.NET Web Application (this is the default application with VS2013) and it publishes just fine. However when I visit my application
http://someapp.apphb.com
I get the "Welcome to nginx" page. However http://someapp.apphb.com/Home works.
Is there a setting on AppHarbor that I need to change, or do I need to make a change to my WebApp?
You can set default document in Web config file
<configuration>
<system.webServer>
<defaultDocument>
<files>
<add value="index.html" />
</files>
</defaultDocument>
</system.webServer>
</configuration>

Resources