Why does appcmd list fail for åäö in Azure agent job? - azure-pipelines-release-pipeline

We've got an Azure DevOps release pipeline that executes the "Manage IIS Website" task to create or update a site + app pool on a Windows 2016 server, English version.
The names of the app pool and the site contain "ö". This has worked fine before, but after migrating the (virtual) server to a new hosting provider, including conversion from VMware to Hyper-V, it fails.
The problem is that the output of the appcmd list command, that correctly and successfully lists the existing app pool/site, is not correctly interpreted by the agent, so it doesn't "see" that the app pool/site already exists, and tries to add/create it instead of updating the existing one. The subsequent appcmd add command fails because the app pool/site already exists.
I tried renaming the app pool to "o" instead of "ö", and then it works (for the app pool), so it's pretty clear that this is the problem.
From the log at this state (anonymized):
2020-01-14T10:12:37.2971066Z ##[command]"C:\Windows\system32\inetsrv\appcmd.exe" list apppool /name:"AppPoolWitho"
2020-01-14T10:12:37.4439073Z ##[command]"C:\Windows\system32\inetsrv\appcmd.exe" set apppool /apppool.name:"AppPoolWitho" -managedRuntimeVersion:v4.0 -managedPipelineMode:Integrated -processModel.identityType:SpecificUser -processModel.userName:"SERVER\TheUser" -processModel.password:"***"
2020-01-14T10:12:37.5380063Z APPPOOL object "AppPoolWitho" changed
2020-01-14T10:12:37.5493192Z ##[command]"C:\Windows\system32\inetsrv\appcmd.exe" list site /name:"Site Name With ö"
2020-01-14T10:12:37.6520709Z ##[command]"C:\Windows\system32\inetsrv\appcmd.exe" add site /name:"Site Name With ö" /physicalPath:"D:\MyProj\TheProj\Dev\wwwroot"
2020-01-14T10:12:37.7181428Z ERROR ( message:Failed to add duplicate collection element "Site Name With �". )
2020-01-14T10:12:37.8944458Z ##[error]Process 'appcmd.exe' exited with code '183'.
2020-01-14T10:12:37.9257153Z ##[section]Finishing: Manage IIS Website
What can I do to fix it?
We do want to use the Swedish names as we have before. I do understand that using aao instead of åäö will get me up and running, but that's a workaround and not a fix.
Is there a setting somewhere that I can change in Windows, the Azure agent, the pipeline, for PowerShell...?

Related

AzureWarehouse database DimTeamProject table reportpath column is null

We as a company migrated from TFS 2013 to AzureDevops 2019 Server(On-Prem) and had to move old reports to the new report server. To do so we used a powershell script that uses /ReportServer/ReportService2005.asmx web service to create folders and reports. We couldn't do it manually because we have lots of collections and projects under them.
We have realized that the projects created after the migration had problems with the reports. Reports we use include default CMMI reports and some custom ones we have created. Most of these by default uses a SQL system function called [GetProjectNodeInfoFromReportFolder] that is located in warehouse database. This function returns the project guid and project name based on the current path of the report folder. This function uses the table DimTeamProject under the warehouse database and the column 'ReportPath' to determine which report is triggered against.
The problem we have is that the newly created projects after the migration all have NULL values in this ReportPath column, which fails our reports.
I couldn't seem to find where this ReportPath column is being filled upon so I couldn't find the core of the problem.
Based on research I've tried rebuilding the warehouse database in the administration console but it doesn't change anything. I've also checked in the administration console that the Default Report Folder path is set correctly for all the collections.
I've also tried uploading reports manually on the ssrs web portal.
As a side note, when I check the project in the visual studio Team Explorer I cant see the Reports tab. I can for the older projects. So I believe there should be something wrong in the project configuration.
I appreciate any feedback, thanks.
I've fixed the issue by following the steps below:
Connect to the server that devops is installed on.
Open Azure Devops Server Administration Console
Select Application Tier > Team Project Collections
Select the desired collection and click 'Edit Default Folder Collection'
Enter the folder path on the pop up and press OK. In my case it was already set but I was still having the problem mentioned in the question. (/TfsReports/DefaultCollection)
After 2-3 minutes setting the value in the last step, the warehouse db got updated and all the null values got replaced with the correct information.
**NOTE: This process needs to be repeated after a new project is created, otherwise the newly created project will still have a null value on reportpath

wso2 1.10 store DefaultApplication Missing

I have installed a standalone instance of wso2 API Manager 1.10.0 with the CARBON-PATCH-4.4.0-0084 installed. I am walking through the PhoneVerification tutorial and have published the API as instructed. I created a new user for the store and am trying to subscribe to the PhoneVerification-2.0.0 API but cannot because there is no DefaultApplication in the Applications dropdown list. It is missing from the list. I tried to add and application and get an error dialog saying Missing Parameters. I am stuck and cannot go any further. One additional piece of information, I am using mysql instead of the h2 default. I followed all the instructions to setup mysql and had no problems. Also I changed the admin password as well.
I have tried API Manager 1.10 with security patch CARBON-PATCH-4.4.0-0084 with no issues. I can create APIs and subscribe using the DefaultApplication. I tried with default database and a new user who is assigned to 'Internal/subscriber' role.
Please check if you have any other changes for Store Web app at 'wso2am-1.10.0/repository/deployment/server/jaggeryapps/store'. You have to replace 'store' and 'publisher' apps as instructed in the Readme of patch.
(iii) Merge and Replace resource/store to /repository/deployment/server/jaggeryapps/store
(iv) Merge and Replace resource/publisher to /repository/deployment/server/jaggeryapps/publisher
To check if the Mysql configuration worked properly, please check if there are any errors in Carbon log, at 'repository/logs/wso2carbon.log' file related to that. And double check if userstore and api-manager database tables are created properly and configured in 'repository/conf/datasources/master-datasources.xml' properly.

Failure log from Dev Center

Recently I’ve release my Windows 10 UWP application in store .
Last week I released a new update in store ,after a week I receive lots of mail from users about a bug in my app.(Pages that want to connect to database can't open and they crash)
Funny part is that when I deploy and run it by visual studio or Powershell (appx-package command) everything works fine, so I can't find a thing.(Even in RemoteMachine and Emulator)
So I was checking my dashboard in dev center and find some "failed log" there.
How can I use these logs to find my problem?
I'm really stuck and don't know what to do!!
Solution:
In Properties of the Project there is a file named Default.rd.xml that contains an element like <Assembly Name="*Application" ...
So by mistake the attribute it was changed to name="*Application" (Don't know what changed that and VisualStudio didn't notice that.)

New LightSwitch Project

I have started a new Lightswitch project using a SQL database that was created with Lightswitch. When I publish and install the new Desktop project everything goes fine with no errors in publishing, installing or loading the new application. The first and only screen appears. I can click on different records and the data shows up and I can edit the data. However, if I use the list search function all of the fields get Red x'd.
The original application works the way it supposed to work.
I have tried with and without IIS: Published with (local) and (IIS) and get the same results with both methods.
The connecection string options for the new app are not the same as the original in that System Admin and Sytem user connecection strings are not offered so it is difficult to know if I replicating a working setup or not.
In Mananagement Studio I am awash in security, permissions, roles, and login selecitons. It seems clear that this is permission level problem but I have no idea on where to start trouble shooting.
see:
Diagnosing Problems in a Deployed 3-Tier LightSwitch Application
http://blogs.msdn.com/b/lightswitch/archive/2011/09/20/diagnosing-problems-in-a-deployed-lightswitch-application-eric-erhardt.aspx
How many string properties are in the table that you're displaying? Is there a large number of properties that don't need to be included in the search?
This forum post discusses the same issue as you're encountering: Search returns error "Unable to load data" with a Red X
Have you checked your connection string setup? I do have those issues back when I was using SQL Express on development and using SQL Server Enterprise as my target database server.

Local Load Testing: The load test results database could not be opened

I am creating some Load tests using VS2012. I can run the tests using a StorageType of "None", but when I change this to a StorageType of "Database" I get the dreaded error
The load test results database could not be opened. Check that the
load test results database specified by the connect string for your
test controller (or local machine) specifies a database that contains
the load test schema and that is currently available. For more
information, see the Visual Studio help topic 'About the Load Test
Results Store'. The connection error was: An error occurred while
attempting to create the load test results repository schema: To
create the database 'LoadTest2010' your user account must have the
either the SQL Server 'sysadmin' role or both the 'serveradmin' and
'dbcreator' roles
I have created a database on a non local copy of SQL called LoadTest. When I test the connection from the SQL Tracing Connect String dialog I get a success.
I have created a SQL user that has the Server Roles of dbcreator, public, serveradmin and sysadmin. The user has a User Mapping to the LoadTest2010 database that was created from the loadtestresultsrepository.sql in the VS2012 IDE directory. On the database the user has the Database role memberships db_accessadmin, db_datareader, db_datawriter, db_owner.
In the Owned Schemas i ticked on the db_datareader, db_datawriter, db_owner and db_securityadmin howver these have now gone to a blue square instead of a tick when displayed.
So what's going on? Is Visual studio trying to create the database or is something else the issue?
I am not using TestControllers or TestAgents I am simply using a local run.
The answer was simple. I was setting up the connection string in the "SQL Tracing Connect String" instead of clicking the little "Manage Test Controller" icon at the top of my load test window and setting up the connection string from there.
Now I'm off to remove some of those superfluous permissions I created on that SQL user :)
Edit:
The SQL Connection String is NOT stored in the loadtest files. The setting seems to be PC specific so I had to change it on the build server - in one loadtest file (address.loadtest) as shown, then all the other loadtests adopt the same connection string.
I am using Visual Studio 2013 and had this error as well, but for a different reason. It's not entirely clear when setting up a load test for the first time that it will attempt to save the results to a database by default. I didn't realize it was trying to save results to a database until I got the error on my first run attempt. Furthermore, in the load test wizard, there is no screen to configure the database settings or create the database schema for that matter.
I found this article on MSDN which helped me solve the problem.
How to: Create a Load Test Results Repository Using SQL
https://msdn.microsoft.com/en-us/library/ms182600%28v=vs.120%29.aspx?f=255&MSPPError=-2147217396
Basically, it explains that you first need to run a script to create the load test repository schema. Once this is in place on your SQL instance is (it could be anywhere you like), then you can point your load test to this database and save your results there.
For me after I had set database connections and all the test results was still not writing to the database.
I forgot to change my storage type in the properties section of the runsettings.
The property is called 'Storage Type'
Storage Type : change it from None to Database